当前位置: 首页 > 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"
            }
          ]
        }
      }
    }

相关文章:

  • 记录一次 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分布式多节点多驱动器集群部署
  • 陕西省市监局通报5批次不合格食品,涉添加剂超标、微生物污染等问题
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯被执行死刑
  • 媒体:中国女排前队长朱婷妹妹被保送浙大受质疑,多方回应
  • 苏轼“胡为适南海”?
  • 长三角首次,在铁三赛事中感受竞技与生态的共鸣
  • 125%→10%、24%税率暂停90天,对美关税开始调整