【ElasticSearch】常用查询格式介绍

  1. 查询类型(Query Type):

    • match:全文搜索,会对查询字段进行分词,匹配文档中包含指定词项的文档。
    • match_phrase:短语搜索,会对查询字段进行分词,匹配包含指定短语的文档。
    • term:精确值搜索,用于搜索精确匹配指定词项的文档。
    • terms:多值搜索,用于搜索匹配多个指定词项的文档。
    • bool:布尔查询,用于组合多个查询条件和过滤器。
    • range:范围搜索,用于搜索指定字段在某个范围内的文档。
    • wildcard:通配符搜索,用于搜索符合某个模式的文档。
    • prefix:前缀搜索,用于搜索指定字段以某个前缀开头的文档。
    • fuzzy:模糊搜索,用于搜索指定字段的模糊匹配文档。
    • exists:存在搜索,用于搜索指定字段存在的文档。
    • match_all:匹配所有文档。
    • query_string:使用Lucene查询语法进行搜索。
  2. 查询语法格式:

    • match查询的语法格式:{“match”: {“field”: {“query”: “value”, “operator”: “and/or”}}}
    • match_phrase查询的语法格式:{“match_phrase”: {“field”: “value”}}
    • term查询的语法格式:{“term”: {“field”: “value”}}
    • terms查询的语法格式:{“terms”: {“field”: [“value1”, “value2”]}}
    • bool查询的语法格式:{“bool”: {“must”: […], “should”: […], “must_not”: […]}}
    • range查询的语法格式:{“range”: {“field”: {“gte”: “value”, “lte”: “value”}}}
    • wildcard查询的语法格式:{“wildcard”: {“field”: “value”}}
    • prefix查询的语法格式:{“prefix”: {“field”: “value”}}
    • fuzzy查询的语法格式:{“fuzzy”: {“field”: {“value”: “value”, “fuzziness”: “auto”}}}
    • exists查询的语法格式:{“exists”: {“field”: “value”}}
    • match_all查询的语法格式:{“match_all”: {}}
    • query_string查询的语法格式:{“query_string”: {“query”: “value”}}
  3. 查询字段(Field):可以指定需要查询的字段,也可以对所有字段进行查询。

    • 对所有字段进行查询:{“query”: “value”}
    • 指定查询字段:{“field”: {“query”: “value”}}
  4. 查询条件(Query Condition):根据查询类型和查询字段来指定查询条件。

    • match查询条件的语法格式:{“match”: {“field”: {“query”: “value”, “operator”: “and/or”}}}
    • match_phrase查询条件的语法格式:{“match_phrase”: {“field”: “value”}}
    • term查询条件的语法格式:{“term”: {“field”: “value”}}
    • terms查询条件的语法格式:{“terms”: {“field”: [“value1”, “value2”]}}
    • bool查询条件的语法格式:{“bool”: {“must”: […], “should”: […], “must_not”: […]}}
    • range查询条件的语法格式:{“range”: {“field”: {“gte”: “value”, “lte”: “value”}}}
    • wildcard查询条件的语法格式:{“wildcard”: {“field”: “value”}}
    • prefix查询条件的语法格式:{“prefix”: {“field”: “value”}}
    • fuzzy查询条件的语法格式:{“fuzzy”: {“field”: {“value”: “value”, “fuzziness”: “auto”}}}
    • exists查询条件的语法格式:{“exists”: {“field”: “value”}}
    • query_string查询条件的语法格式:{“query_string”: {“query”: “value”}}
  5. 过滤器(Filter):用于对查询结果进行过滤,只返回符合条件的文档。

    • term过滤器的语法格式:{“term”: {“field”: “value”}}
    • terms过滤器的语法格式:{“terms”: {“field”: [“value1”, “value2”]}}
    • range过滤器的语法格式:{“range”: {“field”: {“gte”: “value”, “lte”: “value”}}}
    • exists过滤器的语法格式:{“exists”: {“field”: “value”}}
    • bool过滤器的语法格式:{“bool”: {“must”: […], “should”: […], “must_not”: […]}}
    • match过滤器的语法格式:{“match”: {“field”: “value”}}
  6. 排序(Sorting):用于指定查询结果的排序方式,可以按照字段的升序或降序进行排序。

    • 单个字段排序的语法格式:{“field”: {“order”: “asc/desc”}}
    • 多个字段排序的语法格式:[{“field1”: {“order”: “asc/desc”}}, {“field2”: {“order”: “asc/desc”}}]
  7. 分页(Pagination):用于指定返回结果的起始位置和数量。

    • from:指定起始位置,默认为0。
    • size:指定返回结果的数量,默认为10。
  8. 聚合(Aggregation):用于对查询结果进行统计和分析,如求和、平均值、最大值、最小值等。

    • 求和聚合的语法格式:{“sum”: {“field”: “value”}}
    • 平均值聚合的语法格式:{“avg”: {“field”: “value”}}
    • 最大值聚合的语法格式:{“max”: {“field”: “value”}}
    • 最小值聚合的语法格式:{“min”: {“field”: “value”}}
    • 统计值聚合的语法格式:{“stats”: {“field”: “value”}}
GET /index_name/_search
{
   
  "query": {
   
    "bool" : {
   
      "must" : [
        {
    "match" : {
    "field1" : "value1" } },
        {
    "range" : {
    "field2" : {
    "gt" : "value2" } } }
      ],
      "filter" : {
   
        "term" : {
    "field3" : "value3" }
      },
      "should" : [
        {
    "term" : {
    "field4" : "value4" } },
        {
    "term" : {
    "field5" : "value5" } }
      ],
      "minimum_should_match" : 1
    }
  },
  "sort": [
    {
    "field6": {
    "order": "asc" } }
  ],
  "from": 0,
  "size": 10
}
 

相关推荐

  1. ElasticSearch查询格式介绍

    2024-02-23 01:58:03       31 阅读
  2. ElasticSearch基础及查询

    2024-02-23 01:58:03       40 阅读
  3. ElasticSearch 查询优化方式

    2024-02-23 01:58:03       11 阅读
  4. elasticsearch命令

    2024-02-23 01:58:03       29 阅读
  5. Elasticsearch语句

    2024-02-23 01:58:03       17 阅读
  6. MongoTemplate 查询

    2024-02-23 01:58:03       26 阅读
  7. postgres查询

    2024-02-23 01:58:03       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-23 01:58:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-23 01:58:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-23 01:58:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-23 01:58:03       18 阅读

热门阅读

  1. 动态规划-背包问题-二维费用背包 & 分组背包

    2024-02-23 01:58:03       34 阅读
  2. 前端常见面试题之vue2

    2024-02-23 01:58:03       28 阅读
  3. GB/T 43565-2023 中小学合成材料面层篮球场地检测

    2024-02-23 01:58:03       34 阅读
  4. Oracle使用exp和imp命令实现数据库导出导入

    2024-02-23 01:58:03       28 阅读
  5. 【面试题】谈谈MySQL的事务

    2024-02-23 01:58:03       26 阅读
  6. 简单介绍一下WebRTC中NACK机制

    2024-02-23 01:58:03       26 阅读
  7. SQL表连接方式

    2024-02-23 01:58:03       27 阅读
  8. python爬虫常用的库

    2024-02-23 01:58:03       32 阅读
  9. 移除元素

    2024-02-23 01:58:03       33 阅读