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已不再支持

相关推荐
Ws_9 小时前
Git + Gerrit 第四课:合并冲突解决
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客13 小时前
Elasticsearch:跨数据库与业务系统进行搜索
大数据·数据库·人工智能·elasticsearch·搜索引擎·全文检索
极光技术熊13 小时前
最新Elasticsearch 版本演进与 Java 客户端接入完全指南
elasticsearch
Elastic 中国社区官方博客13 小时前
从平均值到任意百分位:Elasticsearch 在 ES|QL 中提供原生 exponential histogram 支持
大数据·人工智能·elasticsearch·搜索引擎·信息可视化·全文检索·数据可视化
Elastic 中国社区官方博客14 小时前
Elasticsearch Agent Builder 黑客松(Hackathon)
大数据·人工智能·elasticsearch·搜索引擎·云原生·全文检索
Ws_14 小时前
Git + Gerrit 第三课:分支、切换与合并
git·elasticsearch
Elastic 中国社区官方博客15 小时前
Elasticsearch 9.4 推动 Elastic AI 生态系统的下一阶段:Dell AI Data Platform 与 NVIDIA
大数据·人工智能·elasticsearch·搜索引擎·全文检索
Ws_16 小时前
Git + Gerrit 第五课:rebase 变基与提交历史整理
大数据·elasticsearch·搜索引擎
海兰16 小时前
手把手elasticsearch学习之构建 HITL AI 代理
人工智能·学习·elasticsearch