2013-06-09 4 views
1

Post라는 모델에서 다음 매핑이 주어지면 특정 시간 범위 (예 : 지난 7 일) 내에 캐스팅 된 수의 순서로 게시물을 반환하는 쿼리를 작성할 수 있습니까? 일)?ElasticSearch 및 Tire로 중첩 된 요소의 수로 정렬

mapping do 
    indexes :id, type: 'integer' 
    indexes :user_id, type: 'integer' 
    indexes :name, boost: 10 
    indexes :body # analyzer: 'snowball' 
    indexes :created_at, type: 'date' 
    indexes :vote_count, type: 'integer' 

    indexes :topic_ids 

    indexes :topics do 
     indexes :id, type: 'integer' 
     indexes :name, type: 'string' 
    end 

    indexes :votes do 
     indexes :user_id, type: 'integer' 
     indexes :created_at, type: 'date' 
    end 
end 

저는 Tire in Rails 3.2.13을 사용하고 있습니다. Post 모델과 Vote 모델이 있습니다. 포스트에는 투표 수가 많고 투표는 포스트에 속합니다.

답변

0

예, vote_count 속성을 정렬하거나 정밀한 관련성 계산을 위해 custom_score 쿼리를 사용할 수 있습니다.

require 'tire' 

s = Tire.search do 
    query do 
    filtered do 
     query { all } 
     filter :range, 'created_at' => { from: '-7d' } 
    end 
    end 
    sort do 
    by :vote_count 
    end 
end 

puts s.to_curl 
: 같은 전, 뭔가