elastic math query minimum_should_match 含义咨询

发布于 2021-11-24 20:52:46 字数 903 浏览 756 评论 1

curl -XPOST 'localhost:9200/test/_search?pretty' -d '
{
    "query": {
        "match": {
            "title": {
                "query": "五得",
                "operator": "or",
                "minimum_should_match": "2"
            }
        }
    }
}'

这样查询不出记录来, 但若将minimum_should_match改为1或去除的话,就可以查询出记录来,不知这两者有什么区别?

另外上述的查询与下面的查询有区别吗?下面这种方式可以查出记录来

curl -XPOST 'localhost:9200/test/_search?pretty' -d '
{
  "query": {
    "bool": {
      "should": [
        { "match": { "title": "五得" } }
      ],
      "minimum_should_match" : 2
    }
  }
}'



看文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html

也看不出个所以然来


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伪装你 2021-11-25 09:44:38

又分析了下,不知理解的对不对, 五得通过ik分词后,得到'五'和'得', 而

"title": {
	"query": "五得",
	"operator": "or",
	"minimum_should_match": "2"
}

意思相当于 title contains '五' && title contains '得', 而既有'五'又有'得'的选项不存在故查不出结果。

当去掉minimum_should_match后,相当于 title contains '五' || title contains '得', 而包含'五'的记录存在,故能查询出记录来

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文