欢迎投稿

今日深度:

elasticsearch-多词短语无序查询,elasticsearch-短语

elasticsearch-多词短语无序查询,elasticsearch-短语


混合起来

精确短语匹配 或许是过于严格了。也许我们想要包含 quick brown fox'' 的文档也能够匹配 quick fox,'' , 尽管情形不完全相同。

我们能够通过使用 slop 参数将灵活度引入短语匹配中:

GET /my_index/my_type/_search
{
    "query": {
        "match_phrase": {
            "title": {
            	"query": "quick fox",
            	"slop":  1
            }
        }
    }
}

slop 参数告诉 match_phrase 查询词条相隔多远时仍然能将文档视为匹配 。 相隔多远的意思是为了让查询和文档匹配你需要移动词条多少次?

我们以一个简单的例子开始吧。 为了让查询 quick fox 能匹配一个包含 quick brown fox 的文档, 我们需要 slop 的值为 1:

            Pos 1         Pos 2         Pos 3
-----------------------------------------------
Doc:        quick         brown         fox
-----------------------------------------------
Query:      quick         fox
Slop 1:     quick                 ↳     fox

尽管在使用了 slop 短语匹配中所有的单词都需要出现, 但是这些单词也不必为了匹配而按相同的序列排列。 有了足够大的 slop 值, 单词就能按照任意顺序排列了。

为了使查询 fox quick 匹配我们的文档, 我们需要 slop 的值为 3:

            Pos 1         Pos 2         Pos 3
-----------------------------------------------
Doc:        quick         brown         fox
-----------------------------------------------
Query:      fox           quick
Slop 1:     fox|quick  ↵  (1)
Slop 2:     quick      ↳  fox
Slop 3:     quick                 ↳     fox

www.htsjk.Com true http://www.htsjk.com/Elasticsearch/30453.html NewsArticle elasticsearch-多词短语无序查询,elasticsearch-短语 混合起来 精确短语匹配 或许是过于严格了。也许我们想要包含  quick brown fox'' 的文档也能够匹配  quick fox,'' , 尽管情形不完全相同。...
相关文章
    暂无相关文章
评论暂时关闭