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