2013-10-31 261 views
-1

我正在使用Tire(ElasticSearch Ruby gem),并希望匹配关键字“社区营销”上的几个字段。不过,我也希望ElasticSearch也返回关键字“社区营销”的结果。标准分析器不会将“社区”解析/标记为“社区”,因此它们是单独的关键字。ElasticSearch:匹配多个查询

如何让ElasticSearch返回“社区营销”和“社区营销”的结果?我更喜欢在查询时间内完成此操作,而不是索引时间。我对ElasticSearch标准分析仪很满意,并且不想惹恼它。

fields = ["title", "popular_hash_tags"] 
keyword = "communities marketing" 
keyword2 = "community marketing" 

s = Tire.search "articles" do 
    query do 
     match fields, keyword, :operator => "AND" 
     #NOW I also want to match keyword2?? 
    end 
end 
+0

你说你不想处理不断变化的分析仪,但它听起来像你应该考虑它。这种情况是有一个词干的典型原因。 ['英文'分析器](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-lang-analyzer.html)应该为您处理这个问题。我处理复数和其他后缀等。 – femtoRgon

回答