elasticsearch结构
- 索引(index):相同类型的文档集合(理解为关系数据库中的数据库)
- 文档(document):就是一条条的数据,由多个字段组成,包含了具体的数据。例如,一个商品的所有信息(名称、价格、描述等)构成一个文档
- 映射(mapping):定义了索引中文档的字段结构和数据类型等信息(理解为为关系数据库中的表结构)
- 字段(field):就是JSON格式文档中的字段(理解为关系数据库表中的字段)
- DSl:elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD
正向索引
- 正向索引类似于传统数据库中的索引,它是根据文档的 ID 来快速找到文档的内容。但在 Elasticsearch 这类搜索引擎中,正向索引不是主要的索引方式。
倒排索引
- 对文档内容分词,对词条创建索引,并记录文档id。查询是先根据词条查询到文档id,然后在获取到文档。
- 倒排索引的优点在于能够快速根据用户输入的关键词,迅速找到相关的文档。
索引的基本操作
- PUT:用于添加或更新数据。如果指定的文档 ID 不存在,它将创建一个新的文档
- 创建名为
test2 的索引,并定义映射(mapping)规则,指定字段类型
- 不指定字段类型,那么elasticsearch就会给我们默认配置
PUT /test2/
#创建规则
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "integer"
},
"birthday": {
"type": "date"
}
}
}
}

- GET: 用于查询数据。可以根据文档 ID 获取单个文档的信息,也可以通过特定的查询条件来检索多个文档。

- POST:通常用于修改数据,可实现局部更新。例如,可以使用
POST结合特定的端点(如 _update)来更新文档的部分字段
- 直接使用PUT会把索引数据覆盖
PUT test3/_doc/1
{
"name": "陈红官",
"age": "28",
"birth": "2000-12-23"
}
POST test3/_doc/1/_update
{
"doc": {
"name": "徐德柱"
}
- DELETE:用于删除数据,根据指定的文档 ID 或其他条件删除相应的文档或整个索引。
- 删除整个索引
job_idx
DELETE /job_idx
- 删除索引
job_idx中 ID 为 29097的文档
DELETE /job_idx/_doc/29097