0

我正在尝试使用 Elasticsearch 和 Tire 搜索消息。一切似乎都很好,除了我需要将返回的消息限制为发件人或收件人是用户搜索的那些。到目前为止,看起来我所见过的所有示例都处理单个字段上的多个术语,但我正在尝试 OR 多个字段上的单个术语。基本上是这样的:

filter :term, sender_name || recipient_name: user_name

将它们一个接一个地放置基本上会创建一个 AND 而我正在尝试做一个 OR

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

1 回答 1

0

好的,我想我已经弄清楚了。这是我发现到目前为止似乎可行的解决方案:

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

希望这对其他人有帮助!

于 2013-07-16T03:25:59.673 回答