1. 首页
  2. 软件开发
  3. 认识Elasticsearch

认识Elasticsearch

  • 发布于 2024-07-19
  • 0 次阅读

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"
      }
    }
  }
}

Pasted image 20240705104652.png

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

Pasted image 20240705105013.png

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