[英]ElasticSearch / Tire - Facets are not filtered by the query?
我有一个附加了构面的ElasticSearch / Tire查询。 看来,方面是使用全局范围,而不是查询范围和过滤器。
这是我的定义。 我不确定如何确定其范围以使用过滤器。
def self.facets_for(keyword_array, fasit, opts = {})
keyword_array = [keyword_array] if keyword_array.is_a?(String)
tire.search(per_page: opts[:per_page], page: opts[:page] ) do
query do
boolean { should { string '*' }}
end
filter :terms, :keyword => keyword_array
facet "phrases" do terms :phrases, :size => 20 end if fasit.include?("phrases")
facet "sentiment" do terms :sentiment end if fasit.include?("sentiment")
facet "lang" do terms :lang end if fasit.include?("lang")
facet "provider" do terms :provider end if fasit.include?("provider")
end # tire search
end
现在,这将返回范围是“全局”的构面,即它们没有被过滤器(或查询(如果有更复杂的查询))过滤。
我想念什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.