ruby-on-rails-3 - 如何在 sunspot solr 中进行简单的 bool 查询

标签 ruby-on-rails-3 solr search-engine sunspot-rails

>>> marketing = User.search do |s|
>>>     s.fulltext "Marketing"
>>> end
>>> marketing.total
1448

>>> sales = User.search do |s|
>>>     s.fulltext "Sales"
>>> end
>>> sales.total
567

>>> marketing_and_sales = User.search do |s|
>>>     s.fulltext "Marketing AND Sales"
>>> end
>>> marketing_and_sales.total
945

>>> marketing_or_sales = User.search do |s|
>>>     s.fulltext "Marketing OR Sales"
>>> end
>>> marketing_or_sales.total
945  

<Sunspot::Search:{:fq=>["type:User"], :q=>"Marketing AND Sales", :fl=>"* score",      :qf=>"textfield1 textfield2 textfield3", :defType=>"dismax", :start=>0, :rows=>30}>

我想要简单的 bool 查询来处理 sunspot-rails,solr 我尝试了很多可能性,而不是简单地接受它。

AND 和 NOT 似乎按照 dismax 配置工作。 我怎样才能使 OR 查询工作。

提前致谢。

最佳答案

我想通了。您可以使用 any_of 和 all_of 指定搜索条件的范围。尽管 all_of 不起作用,除非在 any_of 内部使用。这是链接 http://sunspot.github.com/docs/Sunspot/DSL/Scope.html#all_of-instance_method

>>> marketing_or_sales = User.search do |s|
>>>     s.any_of do 
>>>         s.fulltext "Marketing"
>>>         s.fulltext "Sales"
>>>     end
>>> end
>>> marketing_or_sales.total
945  

关于ruby-on-rails-3 - 如何在 sunspot solr 中进行简单的 bool 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005661/

相关文章:

ruby-on-rails - Ruby On Rails 动态路由

ruby-on-rails-3 - 跨子域的 rails 3 session 在 Internet Explorer 中不起作用

Solr - 如何获取所有分面字段的值?

lucene - 如何在 Solr 中使用通配符、模糊搜索?

elasticsearch - 使用 haystack 忽略 Elasticsearch 中的重音

mysql - Rails 如何渲染表单而不是在提交时重定向?

ruby-on-rails - rails 对嵌套资源进行分类

search - 如何忽略 solr 查询中的空格

search - SEO rel ="nofollow"有助于避免重复内容?

search - 原始域名 VS 通用域名? (搜索引擎优化)