ITPub博客

首页 > IT基础架构 > > ES6的查询语句小实践

ES6的查询语句小实践

作者:格伯纳 时间:2020-06-03 13:33:51 0 删除 编辑

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​www.elastic.co

5、fuzzy查询

模糊查询 | Elasticsearch: 权威指南 | Elastic​www.elastic.co图标

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31509949/viewspace-3126675/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
管理员

注册时间:2018-03-30

  • 博文量
    2383
  • 访问量
    983925