2013-11-01 2 views
1

내 프로젝트에서 user_id가 일치하면 PersonRecord의 검색 결과를 높이고 싶습니다. 각 PersonRecord에는 user_ids 배열이 있습니다 (사용자가 해당 PersonRecord를 소유하고 있습니다). 이제 이름과 user_id를 검색에 전달하고 이름과 정확히 일치하는 항목을 반환하고 user_id에 일치하는 항목이 있으면 검색 결과를 높이기를 원합니다. 여기 코드는 : 여기가 user_ids배열의 엘레멘트 검색 쿼리 일치 요소

results = PersonRecord.search do |search| 
    search.query do |query| 
     query.boolean do |m| 
     m.must {match 'name.full', 'David Butler'} 
     m.should {|m| m.term 'user_ids', user.id, :boost => 100} 
     end 
    end 
    end 

참고 USER_ID의 배열 및 user.id은 문자열입니다. 여기에 검색어, 또는 이드를 사용해야합니까? 아니면 일치하니? 어떤 제안? 용어는 배열과 문자열을 비교합니까? 감사.

답변

2

당신이

m.should { m.terms 'user_ids', [user ids array], :boost => 100} 
에 대한 용어를 사용할 수 있습니다