ElasticSearch 文档API

🔥本文简要🔥

ElasticSearch提供单文档和多文档API,其中API调用分别针对单文档和多文档。

  • 🚌一个人可以走的很快,一群人可以走的很远🇨🇳
  • 🎉点赞评论收藏 ➕关注== 养成习惯(一键四连)📝
  • 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝
  • 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!😆

一、索引API

二、自动创建索引

三、版本控制

3.1、内部版本控制

3.1、外部版本控制

四、操作类型

五、自动生成ID

六、获取API

七、删除API

八、更新API


一、索引API

当使用特定映射对相应的索引发出请求时,它有助于在索引中添加或更新JSON文档。例如,下面的请求将把JSON对象添加到schools映射下。

POST /schools/_doc/4
{
   "name":"City School", "description":"ICSE", "street":"West End", "city":"Meerut", 
   "state":"UP", "zip":"250002", "location":[28.9926174, 77.692485], "fees":3500, 
   "tags":["fully computerized"], "rating":"4.5"
}

二、自动创建索引

当请求将JSON对象添加到特定的索引时,如果该索引不存在,那么该应用编程接口会自动创建该索引以及该JSON对象的基础映射。

三、版本控制

Elasticsearch还提供了版本控制工具。我们可以使用版本查询参数来指定特定文档的版本。

PUT schools/_doc/5?version=7&version_type=external
{
   "name":"Central School", "description":"CBSE Affiliation", "street":"Nagan",
   "city":"paprola", "state":"HP", "zip":"176115", "location":[31.8955385, 76.8380405],
   "fees":2200, "tags":["Senior Secondary", "beautiful campus"], "rating":"3.3"
}

版本控制是一个实时过程,不受实时搜索操作的影响。

有两种最重要的版本控制类型-

3.1、内部版本控制

内部版本控制是默认版本,从1开始,并随着每次更新(包括删除)而递增。

3.1、外部版本控制

当文档的版本控制存储在外部系统(如第三方版本控制系统)中时,将使用此功能。要启用此功能,我们需要将version_type设置为external。在这里,Elasticsearch将存储外部系统指定的版本号,并且不会自动对其进行递增。

四、操作类型

操作类型用于强制执行创建操作。这有助于避免覆盖现有文档。

PUT chapter/_doc/1?op_type=create
{
   "Text":"this is chapter one"
}

五、自动生成ID

当在索引操作中未指定ID时,Elasticsearch自动为文档生成ID。

POST chapter/_doc/
{
   "user" : "tpoint",
   "post_date" : "2018-12-25T14:12:12",
   "message" : "Elasticsearch Tutorial"
}

六、获取API

API通过对特定文档执行get请求来帮助提取类型JSON对象。

GET schools/_doc/5

  • 此操作是实时的,不受索引刷新率的影响。
  • 您还可以指定版本,然后Elasticsearch将仅获取该文档的版本。
  • 您还可以在请求中指定_all,以便Elasticsearch可以按每种类型搜索该文档ID,它将返回第一个匹配的文档。
  • 您还可以在特定文档的结果中指定所需的字段。

GET schools/_doc/5?_source_includes=name,fees

还可以通过在get请求中添加_source部分来获取结果中的源部分。

GET schools/_doc/5?_source

还可以通过将refresh参数设置为true来刷新分片,然后再执行get操作。

七、删除API

可以通过向Elasticsearch发送HTTP DELETE请求来删除特定的索引,映射或文档。

DELETE schools/_doc/4

可以指定文档的版本以删除该特定版本。可以指定路由参数以从特定用户删除文档,并且如果文档不属于该特定用户,则操作将失败。在此操作中,您可以像GET API一样指定刷新和超时选项。

八、更新API

脚本用于执行此操作,版本控制用于确保在获取和重新编制索引期间未发生任何更新。例如,您可以使用脚本更新学费

POST schools/_doc/4
{
   "script" : {
      "source": "ctx._source.name = params.sname",
      "lang": "painless",
      "params" : {
         "sname" : "City Wise School"
      }
   }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一灯

请给我打钱!!!谢谢,不客气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值