ES6的查询语句小实践
1、match查询
GET bank/_search
{
"query": {
"match": {
"address": "Holmes Place"
}
}
}
对字段进行了分词,默认or查询。
针对某个字段:加and
加or
2、match_phrase查询
短语查询:同时满足一下条件
1:分词后的词都需要出现在字段中
2:字段中词项顺序一致 位置要相邻,每个词在分词时,附带位置信息:格式如下:
在匹配的时候其实相当于满足一下条件:
- quick、brown和fox必须全部出现在某个字段中。
- brown的位置必须比quick的位置大1。
- fox的位置必须比quick的位置大2。
增加slop参数:slop参数告诉match_phrase查询词条能够相隔多远时仍然将文档视为匹配。相隔多远的意思是,你需要移动一个词条多少次来让查询和文档匹配?
为了让fox quick查询能够匹配我们的文档,需要slop的值为3:
上图成功匹配。改成如下就没办法匹配
此时如果想要匹配,设置slop参数。只需要slop 为1即可。如果slop设置足够大,相当于词条顺序任意。
3、match_phrase_prefix查询 前缀查询
对match_phrase进行了扩展,查询内容的后一个分词与只要满足前缀匹配即可。
4、multi_match查询
只要其中一个字段满足即可。相当于多个mathc,然后组合在一起,更多内容请查看:
multi_match 查询 | Elasticsearch: 权威指南 | Elastic相关文章