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

単純なブールクエリで黒点レールを処理したいのですが、単純に取得するのではなく、多くの可能性を試しました。

ANDとNOTは、dismax構成に従って機能しているようです。ORクエリを機能させるにはどうすればよいですか。

前もって感謝します。

4

1 に答える 1

3

私はそれを考え出した。any_ofおよびall_ofを使用して、検索条件の範囲を指定できます。ただし、any_of内で使用しない限り、all_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  
于 2012-08-20T12:50:33.103 に答える