当前位置: 首页 > article >正文

Elasticsearch常用的查询条件

目录

1. Match Query

2. Term Query

3. Range Query

4. Bool Query

5. Exists Query

6. Prefix Query

7. Wildcard Query

8. Regexp Query

9. Terms Query

10. Nested Query

11. Geo Distance Query

12. Script Query

13. Fuzzy Query

14. Ids Query

15. More Like This Query

在Elasticsearch中,条件查询(也称为过滤查询)用于筛选文档。以下是一些常用的查询字段和查询类型:

1. Match Query

  • 用途: 用于全文搜索,匹配指定字段中的文本。

  • 示例:

    {
      "query": {
        "match": {
          "field_name": "search_text"
        }
      }
    }

2. Term Query

  • 用途: 用于精确匹配指定字段中的值,通常用于关键字字段(keyword)。

  • 示例:

    {
      "query": {
        "term": {
          "field_name": {
            "value": "exact_value"
          }
        }
      }
    }

3. Range Query

  • 用途: 用于匹配指定字段中的值在某个范围内的文档。

  • 示例:

    {
      "query": {
        "range": {
          "field_name": {
            "gte": 10,
            "lte": 20
          }
        }
      }
    }

4. Bool Query

  • 用途: 用于组合多个查询条件,支持mustshouldmust_notfilter

  • 示例:

    {
      "query": {
        "bool": {
          "must": [
            { "match": { "field1": "value1" } },
            { "range": { "field2": { "gte": 10 } } }
          ],
          "should": [
            { "term": { "field3": "value3" } }
          ],
          "must_not": [
            { "term": { "field4": "value4" } }
          ]
        }
      }
    }

5. Exists Query

  • 用途: 用于匹配指定字段存在的文档。

  • 示例:

    {
      "query": {
        "exists": {
          "field": "field_name"
        }
      }
    }

6. Prefix Query

  • 用途: 用于匹配指定字段中以特定前缀开头的文档。

  • 示例:

    {
      "query": {
        "prefix": {
          "field_name": {
            "value": "prefix_text"
          }
        }
      }
    }

7. Wildcard Query

  • 用途: 用于匹配指定字段中符合通配符模式的文档。

  • 示例:

    {
      "query": {
        "wildcard": {
          "field_name": {
            "value": "wild*card"
          }
        }
      }
    }

8. Regexp Query

  • 用途: 用于匹配指定字段中符合正则表达式的文档。

  • 示例:

    {
      "query": {
        "regexp": {
          "field_name": {
            "value": "regex_pattern"
          }
        }
      }
    }

9. Terms Query

  • 用途: 用于匹配指定字段中包含多个值中的任意一个的文档。

  • 示例:

    {
      "query": {
        "terms": {
          "field_name": ["value1", "value2", "value3"]
        }
      }
    }

10. Nested Query

  • 用途: 用于查询嵌套对象中的字段。

  • 示例:

    {
      "query": {
        "nested": {
          "path": "nested_field",
          "query": {
            "match": {
              "nested_field.sub_field": "value"
            }
          }
        }
      }
    }

11. Geo Distance Query

  • 用途: 用于查询地理位置字段,匹配距离某个点一定范围内的文档。

  • 示例:

    {
      "query": {
        "geo_distance": {
          "distance": "10km",
          "field_name": {
            "lat": 40.73,
            "lon": -74.1
          }
        }
      }
    }

12. Script Query

  • 用途: 使用脚本进行复杂的条件查询。

  • 示例:

    {
      "query": {
        "script": {
          "script": {
            "source": "doc['field_name'].value > params.value",
            "params": {
              "value": 10
            }
          }
        }
      }
    }

13. Fuzzy Query

  • 用途: 用于模糊匹配指定字段中的值。

  • 示例:

    {
      "query": {
        "fuzzy": {
          "field_name": {
            "value": "text",
            "fuzziness": "AUTO"
          }
        }
      }
    }

14. Ids Query

  • 用途: 用于根据文档ID查询文档。

  • 示例:

    {
      "query": {
        "ids": {
          "values": ["1", "2", "3"]
        }
      }
    }

15. More Like This Query

  • 用途: 用于查找与指定文档相似的文档。

  • 示例:

    {
      "query": {
        "more_like_this": {
          "fields": ["field1", "field2"],
          "like": [
            {
              "_index": "index_name",
              "_id": "1"
            }
          ]
        }
      }
    }

http://www.kler.cn/a/557850.html

相关文章:

  • [Android]使用WorkManager循环执行任务
  • 【开放词汇分割】Image Segmentation Using Text and Image Prompts
  • 设计心得——解耦的实现技术
  • 打开Firefox自动打开hao360.hjttif.com标签解决方案
  • java Web
  • 【论文解析】Fast prediction mode selection and CU partition for HEVC intra coding
  • 【漫话机器学习系列】100.L2 范数(L2 Norm,欧几里得范数)
  • .NET MVC实现电影票管理
  • 电商API安全防护:JWT令牌与XSS防御实战
  • android 快速定位当前页面
  • 设计模式之组合设计模式实战 文件展示 树叶子节点
  • chrome扩展程序如何实现国际化
  • springboot3.x整合fastdfs
  • Wireshark详解
  • cs106x-lecture14(Autumn 2017)-SPL实现
  • Python Matplotlib图形美化指南
  • C#DevExpress使用GridLookUpEdit实现订单明细选择商品
  • vue3 文件类型传Form Data数据格式给后端
  • 《[含文档+PPT+源码等]精品基于Python实现的Django中药材在线学习系统的设计与实现
  • 和平之翼代码生成器 SHCEU 版 4.0.0RC6 千年隼介绍二