2013-07-15 4 views
0

Elasticsearch 및 Tire를 사용하여 메시지를 검색하려고합니다. 보낸 사람 또는받는 사람이 사용자가 검색하는 메시지로 반환되는 메시지를 제한해야한다는 점을 제외하고는 모든 것이 잘된 것처럼 보입니다. 지금까지 모든 예제가 하나의 필드에서 여러 용어를 처리하는 것처럼 보였지만 여러 필드에서 하나의 용어를 OR하려고했습니다. 이 같은 기본적으로 뭔가 :Tire - Elasticsearch : 두 필드에서 OR을 사용해야합니다.

filter :term, sender_name || recipient_name: user_name 

다른 후 그들에게 하나를 넣기는 기본적를 만들고 내가 OR

filter :term, sender_name: user_name 
filter :term, recipient_name: user_name 

답변

0

확인을 할 노력하고있어 반면, 나는 그것을 알아 낸있어 생각합니다. 다음은 지금까지 작동하는 것으로 보이는 해결책입니다.

filter :or, {:terms => {:sender_name => [user_name]}}, 
      {:terms => {:recipient_name => [user_name]}} 

희망이 있으면 다른 사람에게 도움이됩니다.