一、文档基本操作
参考文档
https://www.elastic.co/guide/en/elasticsearch/reference/7.11/docs.html
本文是基于elasticsearch 7.11.2版本
1.1 索引文档
1.1.1PUT
put方式添加文档,如果不存在,则创建,如果存在,则更新,PUT方式添加文档,必须指定id。如果没有ID,提示以下错误。
1.1.2 POST
POST方式添加文档,如果不存在,则创建,如果存在,则更新,POST方式添加文档,可以不指定ID,有Elasticsearch自动生成id。
可以使用以下API,仅添加文档,如果ID重复,提示错误
1.2 获取文档
使用 GET 从特定索引中检索文档及其源或存储字段。 使用 HEAD 验证文档是否存在。 可以使用 _source 资源仅检索文档源或验证它是否存在。
从 my-index-000001 索引中检索 _id 为 0 的 JSON 文档:
检查是否存在 _id 为 0 的文档,Elasticsearch 返回状态码 200 - 如果文档存在则返回 OK,如果不存在则返回 404 - Not Found。
您可以使用源过滤参数来控制 _source 的哪些部分被返回
1.3 更新文档
使用指定的脚本更新文档,具体语法参照下图,其中和<_id>都是必须的参数。操作分为三个步骤
- 从索引中获取文档(与碎片绑定)
- 运行指定的脚本。
- 重新索引结果
索引一个简单的文档
使用以下脚本更新counter字段
为文档添加字段
删除文档中的字段
可以更改从脚本中执行的操作,例如以下例子,如果tag字段包含green,则此请求删除DOC
如果文档尚不存在,则将UPSERT元素的内容作为新文档插入。如果存在文档,则执行脚本:
1.4 删除文档
有几个可选参数routing、timeout。routing可以指定要删除的文档在那个主分片上,timeout可以指定删除的文档的超时时间,默认为1分钟,超过1分钟报异常。
删除与指定查询匹配的文档
1.5 获取多个文档
按照ID检索文档,如果在请求URI中指定索引,则请求正文中只需要文档ID:
默认情况下,每个文档(如果存储)返回_source字段。使用_source和_source_include或source_exclude属性来过滤特定文档返回的字段。您可以在请求URI中包含_source,_source_includes和_source_excludes查询参数,以指定在没有每个文档指令时使用的默认值。