elasticsearch 匹配查询中考虑词序的弹性搜索,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 匹配查询中考虑词序的弹性搜索,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 匹配查询中考虑词序的弹性搜索

elasticsearch 匹配查询中考虑词序的弹性搜索,elasticsearch,lucene,elasticsearch,Lucene,假设我的索引有两个文档: “富吧” “巴富” 当我对“bar-foo”进行常规匹配查询时,两个文档都正确匹配,但它们的相关性得分相等。然而,我希望在评分过程中单词的顺序是有意义的。换句话说,我希望“巴富”的分数更高 因此,我尝试将匹配查询放在bool查询的must子句中,并包含一个match_短语(具有相同的查询字符串)作为shoul子句。在我使用“bar test foo”进行搜索之前,这似乎可以正确地获得点击率。在这种情况下,match_短语查询似乎不匹配,命中率再次以相同的分数返回 如何构

假设我的索引有两个文档:

  • “富吧”
  • “巴富”
  • 当我对“bar-foo”进行常规匹配查询时,两个文档都正确匹配,但它们的相关性得分相等。然而,我希望在评分过程中单词的顺序是有意义的。换句话说,我希望“巴富”的分数更高

    因此,我尝试将匹配查询放在bool查询的must子句中,并包含一个match_短语(具有相同的查询字符串)作为shoul子句。在我使用“bar test foo”进行搜索之前,这似乎可以正确地获得点击率。在这种情况下,match_短语查询似乎不匹配,命中率再次以相同的分数返回


    如何构造索引/查询,使其考虑词序,但不要求文档中存在所有搜索词?

    请查看
    span查询
    ,它允许指定带或不带slop的顺序(术语之间的间距限制)


    Elasticsearch文档是。

    请查看
    PhraseSearch
    。您应该将当前搜索与短语搜索相结合(将短语搜索提升到比常规术语匹配更高的水平)


    Doc:

    我认为CirruseArch MediaWiki扩展可以做到这一点。结果可能出乎意料: