欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ES查询相关字段区别

程序员文章站 2022-03-01 20:10:42
...

es中的term terms和match match_phrase 的区别

1、term:term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词拆解。

2、terms:terms里的[ ] 多个是或者的关系,只要满足其中一个词就可以

3、match:match进行搜索的时候,会先进行分词拆分,拆完后,再来匹配

4、match_phrase: match_phrase 称为短语搜索,要求所有的分词必须同时出现在文档中,同时位置必须紧邻一致

 

二、模糊查询的方式

1、wildcard:

GET kibana_sample_data_flights/_search

 

{

  "query": {

    "wildcard": {

      "OriginCityName": {

        "value": "Frankfurt*"

      }

    }

  }

}

 

2、fuzzy:

GET /my_index/_search

 

{

  "query": {

    "fuzzy": {

      "text": "surprize"

    }

  }

}

 

3、query_string:查询的字段名和查询字符串都可以使用wildcard

GET /_search

 

{

  "query": {

    "query_string" : {

      "fields" : ["city.*"],

      "query" : "this AND that OR thus"

    }

  }

}

 

4、regexp

GET /my_index/_search

 

{

    "query": {

        "regexp": {

            "postcode": "W[0-9].+"

        }

    }

}