MST

星途 面试题库

面试题:ElasticSearch索引API之文档操作

在ElasticSearch中,简述使用索引API进行文档添加、更新和删除操作的主要步骤及常用参数。如果要添加一个文档,如何指定文档的ID,并且确保数据能够成功索引?
12.1万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

添加文档

  1. 主要步骤
    • 构建要添加的文档数据,通常为JSON格式。
    • 选择合适的索引名称。
    • 使用PUTPOST请求向/{index}/_doc/{id}端点发送文档数据(PUT请求需指定文档ID,POST请求若不指定ID,Elasticsearch会自动生成)。
  2. 常用参数
    • refresh:可选参数,设置为true时,操作完成后会立即刷新索引,使数据可搜索,例如?refresh=true
  3. 指定文档ID并确保成功索引
    • 使用PUT请求:使用PUT请求时,在URL路径中指定文档ID,如PUT /my_index/_doc/1,然后在请求体中包含文档数据。例如:
{
  "title": "Sample Document",
  "content": "This is a sample content"
}
  • 使用POST请求:若要使用POST请求指定ID,可在URL路径中添加/{id},如POST /my_index/_doc/1,同样在请求体中包含文档数据。确保成功索引需保证:
    • 索引名称正确且索引存在(若不存在可先创建)。
    • 文档数据格式符合索引的映射规则(若有自定义映射)。
    • 节点健康且有足够资源。

更新文档

  1. 主要步骤
    • 确定要更新的文档所在的索引和文档ID。
    • 构建更新请求体,包含要更新的字段和新值。
    • 使用POST请求向/{index}/_update/{id}端点发送更新请求。
  2. 常用参数
    • refresh:与添加文档类似,设置为true可立即刷新索引,使更新后的数据可搜索。
    • retry_on_conflict:指定在版本冲突时重试的次数,例如?retry_on_conflict=3
  3. 示例
    • 请求URL:POST /my_index/_update/1
    • 请求体:
{
  "doc": {
    "content": "This is an updated content"
  }
}

删除文档

  1. 主要步骤
    • 确定要删除的文档所在的索引和文档ID。
    • 使用DELETE请求向/{index}/_doc/{id}端点发送删除请求。
  2. 常用参数
    • refresh:设置为true可立即刷新索引,使删除操作后索引状态更新,数据不可搜索。
  3. 示例
    • 请求URL:DELETE /my_index/_doc/1