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

Elasticsearch 常用语法手册

🧰 Elasticsearch 常用语法手册

📚 目录

  • 索引操作
  • 文档操作
  • 查询操作
  • 聚合查询
  • 健康与状态查看
  • 常见问题与注意事项

🔹 索引操作

查询全部索引

GET _search

创建索引

PUT /es_db

创建索引并设置分片数和副本数

PUT /es_db
{"settings": {"number_of_shards": 3,"number_of_replicas": 2}
}

查询索引是否存在

HEAD /es_db

查询索引详情

GET /es_db

删除索引

DELETE /es_db

修改索引配置(如副本数)

PUT /es_db/_settings
{"index": {"number_of_replicas": 1}
}

添加 IK 分词器

PUT /es_db
{"settings": {"index.analysis.analyzer.default.type": "ik_max_word"}
}

🔹 文档操作

添加文档

PUT /es_db/_doc/1
{"name": "张三","age": 10,"address": "深圳市宝安区海谷科技大厦"
}

查询文档

GET /es_db/_search

局部更新文档

POST /es_db/_update/5
{"doc": {"age": 22}
}

删除文档

DELETE /es_db/_doc/5

🔹 查询操作

条件查询(match)

GET /es_db/_search
{"from": 0,"size": 20,"query": {"match": {"name": "张三"}}
}

条件查询(q 参数)

GET /es_db/_search?q=name:庆

短语匹配查询(match_phrase)

POST /es_db/_search
{"query": {"match_phrase": {"name": "张三"}}
}

使用过滤器查询(post_filter)

GET /es_db/_search
{"query": {"match_all": {}},"post_filter": {"range": {"age": {"gte": 10,"lte": 20}}}
}

高亮显示

POST /es_db/_search
{"query": {"match_phrase": {"name": "张三"}},"highlight": {"fields": {"name": {}}}
}

🔹 聚合查询

terms 聚合(按字段统计)

GET /es_db/_search
{"query": { "match_all": {} },"aggs": {"name": {"terms": {"field": "address.keyword"}}}
}

⚠️ 注意:text 类型字段不能直接用于聚合,需使用 .keyword 子字段或开启 fielddata=true(占用较多内存)

avg 聚合(求平均值)

GET /es_db/_search
{"query": { "match_all": {} },"aggs": {"name": {"avg": {"field": "age"}}}
}

🔹 健康与状态查看

查看集群健康状态

GET _cat/health

查看索引情况

GET _cat/indices?v

❗ 常见问题与注意事项

text vs keyword

  • text 类型适合全文搜索,会进行分词。
  • keyword 类型不会分词,适合精确匹配、排序、聚合等操作。
  • 如果需要对 text 字段进行排序或聚合,可以:
    • 使用 .keyword 子字段;
    • 或在映射中设置 "fielddata": true,但注意内存消耗较大。

示例字段映射

PUT /es_db
{"mappings": {"properties": {"address": {"type": "text","fields": {"keyword": { "type": "keyword" }}}}}
}

排序 + 分页查询示例

GET /es_db/_search
{"from": 0,"size": 10,"query": {"bool": {"must": [{ "match": { "name": "张三" } }],"filter": [{ "range": { "age": { "gte": 18 } } }]}},"sort": [{ "createTime": "desc" }]
}

http://www.xdnf.cn/news/469945.html

相关文章:

  • 格恩朗椭圆齿轮流量计 工业流量测量的可靠之钥
  • MySQL库的操作
  • 【笔记】CosyVoice 模型下载小记:简单易懂的两种方法对比
  • vacuum、vacuum full的使用方法及注意事项
  • “禁塑行动·我先行”环保公益项目落地宁夏,共筑绿色生活新篇章
  • 4、前后端联调文生文、文生图事件
  • 趋势跟踪策略的回测
  • AI Agent开发第67课-彻底消除RAG知识库幻觉-文档分块全技巧(1)
  • pgsql14自动创建表分区
  • SpringBoot 自动装配流程
  • [Java实战]Spring Boot 3实现 RBAC 权限控制(二十五)
  • SpringBoot项目使用POI-TL动态生成Word文档
  • 去年开发一款鸿蒙Next Os的window工具箱
  • 软考软件评测师——软件工程之系统维护
  • ADS1220高精度ADC(TI)——应用 源码
  • 采用sherpa-onnx 实现 ios语音唤起的调研
  • 每周靶点:NY-ESO-1、GPC3、IL27分享
  • Linux操作
  • Oracle APEX IR报表列宽调整
  • [ctfshow web入门] web75
  • 运维实施30-FTP服务
  • 欧拉计划 Project Euler 73(分数有范围计数)题解
  • ABP User Interface-Angular UI中文详解
  • Loki的部署搭建
  • JS手写代码篇---手写 Object.create
  • 哈夫曼树完全解析:从原理到应用
  • 接口测试知识详解
  • 亚马逊运营中评论体系构建与高效索评策略解析!
  • 4寸工业三防手持机PDA,助力仓储高效管理
  • 【在qiankun模式下el-dropdown点击,浏览器报Failed to execute ‘getComputedStyle‘ on ‘Window‘: parameter 1 is not o