【Elasticsearch 权威指南学习笔记】使用布尔bool匹配(elasticsearch收费吗)

网友投稿 278 2022-09-20


【Elasticsearch 权威指南学习笔记】使用布尔bool匹配(elasticsearch收费吗)

目前为止,可能已经意识到多词 match 查询只是简单地将生成的 term 查询包裹在一个 bool 查询中。如果使用默认的 or 操作符,每个 term 查询都被当作 should 语句,这样就要求必须至少匹配一条语句。以下两个查询是等价的: { "match": { "title": "brown fox"} }   { "bool": { "should": [ { "term": { "title": "brown" }}, { "term": { "title": "fox" }} ] } } 如果使用 and 操作符,所有的 term 查询都被当作 must 语句,所以 所有(all) 语句都必须匹配。以下两个查询是等价的: { "match": { "title": { "query": "brown fox", "operator": "and" } } } { "bool": { "must": [ { "term": { "title": "brown" }}, { "term": { "title": "fox" }} ] } } 如果指定参数 minimum_should_match ,它可以通过 bool 查询直接传递,使以下两个查询等价: { "match": { "title": { "query": "quick brown fox", "minimum_should_match": "75%" } } } { "bool": { "should": [ { "term": { "title": "brown" }}, { "term": { "title": "fox" }}, { "term": { "title": "quick" }} ], "minimum_should_match": 2 } } 当然,我们通常将这些查询用 match 查询来表示,但是如果了解 match 内部的工作原理,我们就能根据自己的需要来控制查询过程。有些时候单个 match 查询无法满足需求,比如为某些查询条件分配更高的权重。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java实用型
下一篇:【Elasticsearch 权威指南学习笔记】基于词项与基于全文(elasticsearch收费吗)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~