【问题标题】:ElasticSearch: Matching multiple queriesElasticSearch:匹配多个查询
【发布时间】:2013-11-10 21:30:01
【问题描述】:

我正在使用Tire(ElasticSearch Ruby gem),并且想匹配关键字“社区营销”的几个字段。但是,我也希望 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

【问题讨论】:

  • 您说您不想处理不断变化的分析器,但听起来您当然应该考虑一下。这种情况是使用词干分析器的典型原因。 english analyzer 应该为您解决这个问题。我处理复数和其他后缀等。

标签: ruby lucene elasticsearch tire


【解决方案1】:

我建议深入研究 Elasticsearch 的查询 DSL。你会发现很多有趣的东西。 例如,布尔过滤器的“应该”子句。 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-filter.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    相关资源
    最近更新 更多