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

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.dtcms.com/a/30968.html

相关文章:

  • 记录一次 ALG 的处理过程
  • Ubuntu24.04LTS的下载安装超细图文教程(VMware虚拟机及正常安装)
  • 网络安全域管理 网络安全管理体系
  • python的多线程机制和构造
  • 代码随想录算法训练营第四十五天| 动态规划08
  • 大模型产品Deepseek(八)、数据嵌入+知识库管理+联网搜索,实现精准的知识查询
  • 为什么 MySQL 选择使用 B+ 树作为索引结构?MySQL 索引的最左前缀匹配原则是什么?MySQL 三层 B+ 树能存多少数据?
  • [OD E 100] 生成哈夫曼树
  • Java 字符串
  • 51c大模型~合集69
  • 最新版本Exoplayer扩展FFmpeg音频软解码保姆级教程
  • 简单易懂,解析Go语言中的Map
  • Unity 适用于单机游戏的红点系统(前缀树 | 数据结构 | 设计模式 | 算法 | 含源码)
  • postman调用ollama的api
  • REACT学习DAY02(恨连接不上服务器)
  • 垃圾回收知识点
  • 3.12 企业级智能文档引擎:从技术手册到产品报告的全链路自动化实践指南
  • 超简单理解KMP算法(最长公共前后缀next数组、合并主子串、子串偏移法)
  • QT 引入Quazip和Zlib源码工程到项目中,无需编译成库,跨平台,压缩进度
  • Minio分布式多节点多驱动器集群部署
  • 如何使用Python快速开发一个带管理系统界面的网站-解析方案
  • 基于Python+Django+Vue的旅游景区推荐系统系统设计与实现源代码+数据库+使用说明
  • 游戏引擎学习第111天
  • Unity结合Vuforia虚拟按键实现AR机械仿真动画效果
  • ArcGIS Pro进行坡度与坡向分析
  • 【Leetcode 每日一题】2209. 用地毯覆盖后的最少白色砖块
  • 多模态情感分析
  • ArcGIS Pro制作人口三维地图教程
  • 深度学习(2)-深度学习关键网络架构
  • 《Keras 3 :使用 Vision Transformers 进行物体检测》:此文为AI自动翻译