Elasticsearch 基本语法使用

1、创建索引

1.1 基本语法

java 复制代码
PUT <index_name>
  • index_name:索引名称

1.2 索引命名规范

  • 以小写英文字母命名索引
  • 不要使用 驼峰 或者 帕斯卡 命名法则
  • 如过出现多个单词的索引名称,以全小写 + 下划线分隔的方式:如 my_index。

1.3 索引的基本组成

  • alias:即 索引别名,参考: ES中索引别名(alias)的到底有什么用
  • settings:索引设置,常见设置如分片和副本的数量等。
  • mapping:即映射,定义了索引中包含哪些字段,以及字段的类型、长度、分词器等。

2、删除索引

2.1 基本语法

java 复制代码
DELETE /<index_name>
  • index_name:索引名称

2.2 判断索引是否存在

java 复制代码
HEAD <index_name>

3、索引的不可变性

3.1 哪些参数不可变

ES 索引创建成功之后,索引名称、主分片数量、字段类型、分词器等参数将不可被修改

3.2 有什么影响

造成项目后期难以维护和扩展。

3.3 如何解决

  • 运行时字段
  • 索引别名
  • Reindex

4、索引的查询

4.1 查询特定索引

基本语法

java 复制代码
GET /<index_name>/_search 
GET /_search 

可选参数

  • size:单次查询多少条文档,默认为 10
  • from:起始文档偏移量。需要为非负数,默认为0
  • timeout: 指定等待每个分片响应的时间段。如果在超时到期之前未收到响应,则请求失败并返回错误。默认为无超时。

4.2 查询集群中所有索引

java 复制代码
_cat/indices

5、索引文档

将 JSON 文档添加到指定的数据流或索引并使其可被检索。如果目标是索引并且文档已经存在,则请求更新文档并增加其版本号。

基本语法 ★

json 复制代码
PUT /<target>/_doc/<_id>

PUT /<target>/_create/<_id>

POST /<target>/_create/<_id>

案例

索引一条 _id 为 1 的文档,并为其添加 test_field 和 test_title 两个字段

json 复制代码
PUT test_index/_doc/1?op_type=index
{
  "name":"赵四",
  "age":18
}

6、查询文档

5.2.1 基本语法

json 复制代码
GET <index>/_doc/<_id>

5.2.2 案例

json 复制代码
GET product/_doc/1

5.2.3 _source API

使用 _source API 可以打开或者关闭源数据字段,true 为打开,false 为关闭,默认为 true。

json 复制代码
GET <index>/_doc/<_id>?_source=false

当然也可以只查看 _source 字段,而不查看任何 mata data。

json 复制代码
GET <index>/_source/<_id>

7、删除文档

删除索引中指定 id 的文档

json 复制代码
DELETE /<index>/_doc/<_id>

比如:

json 复制代码
DELETE product/_doc/1

8、更新文档

json 复制代码
POST /<index>/_update/<_id>
{
  "doc": {
    "<field_name>": "<field_value>"
  }
}

注意 :7.x 及之前版本的语法 POST test/_doc/1/_update已不再支持

相关推荐
core5123 小时前
Elasticsearch 车牌号片段搜索:n-gram 倒排索引实战方案
elasticsearch·n-gram·索引·倒排索引·号牌·片段
এ慕ོ冬℘゜3 小时前
ES Promise.all/ Promise.race
前端·javascript·elasticsearch
Sayai6 小时前
Elasticsearch 日志写入链路调优实战:ingest pipeline 补时间戳、时区偏移修复与按值类型路由(附 translog 实测)
大数据·运维·elasticsearch·搜索引擎·性能优化
总爱写点小BUG7 小时前
git-tidy:一个把「提交规范治理」做成闭环的 Git 桌面客户端
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客1 天前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es
BreezeJiang2 天前
写了 Dockerfile 却没生效:ES + Kibana 的 compose 配置里,藏着三个反直觉的点
elasticsearch
Elasticsearch2 天前
Elastic 计划利用 NVIDIA RTX GPU 将 Jina 模型推理速度提升至 8 倍
elasticsearch
Elastic 中国社区官方博客2 天前
告别繁琐控制台:Kabanos 如何将 MongoDB Compass 的易用性带入 Elasticsearch
大数据·数据库·mongodb·elasticsearch·搜索引擎·全文检索
Elastic 中国社区官方博客2 天前
控制告警如何触发、恢复和发送通知:Elastic 可观测性中的 Kibana 通用告警
大数据·数据库·安全·elasticsearch·搜索引擎·全文检索·es
深海里的鱼(・ω<)★2 天前
SMB备份导致的 Gitea 分支推送成功但界面不可见故障复盘
大数据·elasticsearch·gitea