elasticsearch,tire,Ruby On Rails 3.2,elasticsearch,Tire" /> elasticsearch,tire,Ruby On Rails 3.2,elasticsearch,Tire" />

Ruby on rails 3.2 Tire-Elasticsearch:必须与两个字段一起使用或跨两个字段使用

Ruby on rails 3.2 Tire-Elasticsearch:必须与两个字段一起使用或跨两个字段使用,ruby-on-rails-3.2,elasticsearch,tire,Ruby On Rails 3.2,elasticsearch,Tire,我正在尝试使用Elasticsearch和Tire搜索邮件。一切似乎都很好,只是我需要将返回的消息限制在发送者或接收者是用户搜索的地方。到目前为止,我看到的所有示例都是在一个字段上处理多个术语,但我正在尝试在多个字段上处理多个术语。基本上是这样的: filter :term, sender_name || recipient_name: user_name 把它们一个接一个地放在一起基本上会产生一个和,而我正试图做一个或 filter :term, sender_name: user_name

我正在尝试使用Elasticsearch和Tire搜索邮件。一切似乎都很好,只是我需要将返回的消息限制在发送者或接收者是用户搜索的地方。到目前为止,我看到的所有示例都是在一个字段上处理多个术语,但我正在尝试在多个字段上处理多个术语。基本上是这样的:

filter :term, sender_name || recipient_name: user_name
把它们一个接一个地放在一起基本上会产生一个和,而我正试图做一个或

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

好的,我想我已经弄明白了。以下是我找到的解决方案,到目前为止似乎有效:

filter :or, {:terms => {:sender_name => [user_name]}},
            {:terms => {:recipient_name => [user_name]}}
希望这对其他人有帮助