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

es查询语法

查询关键词的含义:

  1. match: 用于进行全文搜索,分析查询文本并与倒排索引中的词项进行匹配。

  2. term: 精确匹配,适用于非分析字段,如 keyword 类型。用于查找字段值完全相等的文档。

  3. bool: 组合多个查询条件。可以使用 must(必须满足)、should(可选满足)和 must_not(不能满足)来构建复杂查询。

  4. range: 用于查找字段值在某个范围内的文档。例如,可以查找年龄大于某个值的用户。

  5. wildcard: 使用通配符(如 *?)进行模糊匹配。适用于匹配包含特定模式的字段值。

  6. fuzzy: 模糊匹配,允许一定的拼写错误或相似度。通常用于文本字段。

  7. aggregations: 用于统计和分析数据,比如计数、求和、平均等。适用于对结果集进行聚合。

  8. size: 定义返回结果的文档数量。

  9. from: 用于分页,定义从结果集的哪个位置开始返回文档。

  10. sort: 用于对结果进行排序,可以根据一个或多个字段进行升序或降序排序。

  11. should 是用于 bool 查询的一个子句,它允许你指定可选的匹配条件。使用 should 的查询具有以下特点:

should 特点

  1. 可选匹配:在 should 中列出的条件不是必需的,只要至少满足一个条件,文档就会被包含在结果中。

  2. 加权:如果一个文档匹配多个 should 条件,它的评分会更高。这可以帮助你根据相关性对结果进行排序。

  3. 组合查询:可以与 mustmust_not 一起使用,以创建复杂的查询逻辑。

1. 简单查询
查找所有文档:

json
GET /users/_search
{
  "query": {
    "match_all": {}
  }
}

2. 匹配查询
查找名称为 "Alice" 的用户:

json
GET /users/_search
{
  "query": {
    "match": {
      "name": "Alice"
    }
  }
}

3. 布尔查询
查找年龄大于 25 且兴趣包含 "reading" 的用户:

json
GET /users/_search
{
  "query": {
    "bool": {
      "must": [
        { "range": { "age": { "gt": 25 } } },
        { "match": { "interests": "reading" } }
      ]
    }
  }
}

4. 过滤查询
查找居住在纽约的用户:

json
GET /users/_search
{
  "query": {
    "term": {
      "address.city": "New York"
    }
  }
}

5. 聚合查询
统计不同兴趣的用户数量:

json
GET /users/_search
{
  "size": 0,
  "aggs": {
    "interests_count": {
      "terms": {
        "field": "interests"
      }
    }
  }
}

6. 组合查询
查找年龄在 20 到 40 之间,且居住在纽约的用户:

json
GET /users/_search
{
  "query": {
    "bool": {
      "must": [
        { "range": { "age": { "gte": 20, "lte": 40 } } },
        { "term": { "address.city": "New York" } }
      ]
    }
  }
}

http://www.lryc.cn/news/444687.html

相关文章:

  • LabVIEW提高开发效率技巧----合理使用数据流与内存管理
  • 如何在 ECharts 中设置轴标签
  • 怎么用gitee做一个图片仓库,在md文档中用这个图片网络地址,然后显示图片
  • Thinkphp(TP)
  • 【艾思科蓝】前端框架巅峰对决:React、Vue与Angular的全面解析与实战指南
  • IT行业的未来:技术变革与创新的持续推动
  • Python PDF转图片自定义输出
  • Git 常用操作命令说明
  • 自学前端的正确姿势是...
  • C/C++语言基础--C++构造函数、析构函数、深拷贝与浅拷贝等等相关知识讲解
  • json格式互相转换
  • Linux下共享内存详解
  • MySQL篇(管理工具)
  • redis学习笔记(六)
  • spring与springmvc整合
  • 如何使用Optuna在PyTorch中进行超参数优化
  • 2.Spring-容器-注入
  • 在uboot中添加自定义命令
  • AngularJS 模块
  • [yotroy.cool] MGT 388 - Finance for Engineers - notes 笔记
  • 2024年9月python二级易错题和难题大全(附详细解析)(三)
  • 【LLM多模态】Animatediff文生视频大模型
  • PDB数据库中蛋白质结构文件数据格式
  • C++自动驾驶面试核心问题整理
  • 2024寻找那些能精准修改PDF内容的工具
  • POI操作EXCEL增加下拉框
  • 新手教学系列——基于统一页面的管理后台设计(二)集成篇
  • 计算机毕业设计之:基于微信小程序的疫苗预约系统的设计与实现(源码+文档+讲解)
  • Redis事务总结
  • 1.4 MySql配置文件