2013-07-15 2 views
0

Я пытаюсь искать сообщения, используя Elasticsearch и Tire. Все кажется прекрасным, за исключением того, что мне нужно ограничить сообщения, возвращаемые тем, где либо отправитель, либо получатель - это поиск пользователя. До сих пор это выглядело так, как все примеры, которые я видел, обрабатывают несколько терминов в одном поле, но я пытаюсь ИЛИ использовать один термин в нескольких полях. В основном что-то вроде этого:Tire - Elasticsearch: использование must с OR через два поля

filter :term, sender_name || recipient_name: user_name 

Положив их один за другим в основном создает и в то время как я пытаюсь сделать ИЛИ

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]}} 

Надеюсь, это поможет кому-то еще!