初识ElasticSearch -文档查询之bool查询
Posted 做猪呢,最重要的是开森啦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识ElasticSearch -文档查询之bool查询相关的知识,希望对你有一定的参考价值。
1. 多条件组合布尔查询 - bool:
像match、term查询都是只有一个条件,像多个条件查询时,就可以永bool组合查询,可以有4中情形:
- must:子句(查询)必须出现在匹配的文档中,并将有助于得分
- filter:子句(查询)必须出现在匹配的文档中,但不做评分
- should:子句(查询)应出现在匹配文档中, 匹配 should 条件的最小数目可通过设置minimum_should_match 参数
- must_not:子句(查询)不能出现在匹配的文档中,同样不做评分
【数据准备】:添加两个文档,name为keyword类型,address为text类型
- “name”: “Tom Wilson”,“address”: “China BJ”
- “name”: “Tom Wilson”,“address”: “China SZ”
1.1. bool.must:
must里面可以有多个条件,条件匹配可以是match或term,文档必须对多个字段都匹配,类似and
【HTTP请求】:只匹配name会有两个文档,但还要满足"SZ"的匹配,就只能搜索到一文档
·
1.2. bool.should:
should里面可以有多个条件,条件匹配可以是match或term,支持minimum_should_match参数,类似or
【HTTP请求】:minimum_should_match为2,文档要两个条件都满足,所以只有一个文档
·
1.3. bool.filter:
filter里面可以有多个条件,条件匹配可以是match或term,filter对结果是不作评分的,所以score为0
【HTTP请求】:
·
【题外】:使用constant_score 的filter,会对结果进行评分,score为1.0
·
1.4. bool的API:
使用boolQuery来构建QueryBuilder
以上是关于初识ElasticSearch -文档查询之bool查询的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch系列-01初识以及安装elasticSearch
ElasticSearch篇--ElasticSearch从初识到安装和应用
Elasticsearch --- 01 java , elasticsearch, kibana 的下载安装,es初识