ES 权威指南

news2024/11/26 4:29:33

一、检索文档

1.1 检索文档的一部分


通常, GET 请求将返回文档的全部, 存储在 _source 参数中。 但是可能你感兴趣的字段只是 title 。 请求个别字段可以使
用 _source 参数。 多个字段可以使用逗号分隔:

GET /website/blog/123?_source=title,text

  _source 字段现在只包含我们请求的字段, 而且过滤了 date 字段:

{
    "_index":"website",
    "_type":"blog",
    "_id":"123",
    "_version":1,
    "exists":true,
    "_source":{
        "title":"My first blog entry",
        "text":"Just trying this out..."
    }
}

  或者你只想得到 _source 字段而不要其他的元数据, 你可以这样请求:

GET /website/blog/123/_source
它仅仅返回:
{
"title": "My first blog entry",
"text": "Just trying this out...",
"date": "2014/01/01"
}

 1.2 创建一个新文档

当索引一个文档, 我们如何确定是完全创建了一个新的还是覆盖了一个已经存在的呢?
请记住 _index 、 _type 、 _id 三者唯一确定一个文档。 所以要想保证文档是新加入的, 最简单的方式是使用 POST 方法让
Elasticsearch自动生成唯一 _id :

POST /website/blog/
{ ... }

然而, 如果想使用自定义的 _id , 我们必须告诉Elasticsearch应该在 _index 、 _type 、 _id 三者都不同时才接受请求。 为了
做到这点有两种方法, 它们其实做的是同一件事情。 你可以选择适合自己的方式:
第一种方法使用 op_type 查询参数:

PUT /website/blog/123?op_type=create
{ ... }

或者第二种方法是在URL后加 /_create 做为端点:

PUT /website/blog/123/_create
{ ... }

如果请求成功的创建了一个新文档, Elasticsearch将返回正常的元数据且响应状态码是 201 Created 。
另一方面, 如果包含相同的 _index 、 _type 和 _id 的文档已经存在, Elasticsearch将返回 409 Conflict 响应状态码, 错误信
息类似如下:

{
"error" : "DocumentAlreadyExistsException[[website][4] [blog][123]:
document already exists]",
"status" : 409
}

1.3  删除文档

DELETE /website/blog/123

 正如在《更新文档》 一章中提到的, 删除一个文档也不会立即从磁盘上移除, 它只是被标记成已删除。 Elasticsearch将会在你之后添加更多索引的时候才会在后台进行删除内容的清理。

1.4 处理冲突


 1.4.1 乐观并发控制

Elasticsearch使用这个 _version 保证所有修改都被正确排序。 当一个旧版本出现在新版本之后, 它会被简单的忽略。我们利用 _version 的这一优点确保数据不会因为修改冲突而丢失。 我们可以指定文档的 version 来做想要的更改。 如果那个
版本号不是现在的, 我们的请求就失败了。

当我们通过重新索引文档保存修改时, 我们这样指定了 version 参数:
 

PUT /website/blog/1?version=1 <1>
{
"title": "My first blog entry",
"text": "Starting to get the hang of this..."
}
 

<1> 我们只希望文档的 _version 是 1 时更新才生效。
This request succeeds, and the response body tells us that the _version has been incremented to 2 : 请求成功, 响应体告诉我们 _version 已经增加到 2 :
 

 1.4.2 使用外部版本控制系统

        Elasticsearch的查询字符串后面添加 version_type=external 来使用这些版本号。 版本号必须是整数, 大于零小于 9.2e+18 ——Java中的正的 long 。
        外部版本号与之前说的内部版本号在处理的时候有些不同。 它不再检查 _version 是否与请求中指定的一致, 而是检查是否小于指定的版本。 如果请求成功, 外部版本号就会被存储到 _version 中。

PUT /website/blog/2?version=5&version_type=external
{
"title": "My first external blog entry",
"text": "Starting to get the hang of this..."
}

 现在我们更新这个文档, 指定一个新 version 号码为 10 : 

PUT /website/blog/2?version=10&version_type=external
{
"title": "My first external blog entry",
"text": "This is a piece of cake..."
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/513676.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ios 打包静态库

前言&#xff1a; 各位同学大家&#xff0c; 有段时间没有跟大家见面了。 相信很多做IOS手游sdk 的同学 都会用到静态库&#xff0c; 我们不用把我们都源代码都发给对接方 就可以把我们的逻辑跟研发都代码融合在一起 具体实现&#xff1a; 第一步 点击file 第二步创建一个p…

ES6中将非数组转换为数组的三种方法

大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 我们常常想使用数组的方法&#xff0c;比如forEach&#xff0c;filter&#xff0c;又或者so…

解决 CentOS 7 内核安全漏洞 CESA-2018:3651 报错

如果你的 CentOS 7 服务器在安全测试时出现 kernel (CESA-2018:3651) 报错&#xff0c;那么您的服务器存在内核安全漏洞&#xff0c;需要更新修补。本文将介绍如何解决这个问题。 查看当前内核版本 在进行内核更新之前&#xff0c;您需要先查看当前服务器所使用的内核版本。可…

本地部署 MiniGPT-4

本地部署 MiniGPT-4 1. 什么是 MiniGPT-42. Github 地址3. 安装 MiniGPT-44. 准备预训练的 MiniGPT-4 checkpoint5. 在本地启动演示其他 1&#xff0c;安装 CUDA Toolkit 11.8其他 2&#xff0c;安装 GCC 9 版本&#xff0c;并设置为默认GCC版本其他 3(成功)&#xff0c;重新安…

Shell脚本管道符常用搭配命令(我在人间贩卖黄昏,只为收集世间温柔去见你)

文章目录 1.sort2.uniq3.tr5.split6.paste7.eval 1.sort sort命令——以行为单位对文件内容进行排序&#xff0c;也可以根据不同的数据类型来排序比较原则是从首字符向后&#xff0c;依次按ASCII码值进行比较&#xff0c;最后将他们按升序输出。 sort [选项] 文件名 cat file …

Java版企业电子采购招标系统源码

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…

UNIAPP实战项目笔记65 获取当前用户购物车数据的前端和后端交互

UNIAPP实战项目笔记65 获取当前用户购物车数据的前端和后端交互 思路 构建数据库表 前端数据存入vuex中shop.js的list中 list自动同步到后端数据&#xff0c; 后端相应前端请求数据 实例截图 ##代码 前端代码首批cart.vue <template><view class"shop-cart&quo…

两种知识库软件:BookStack和DokuWiKi在Debian12中的安装

一、BookStack的安装 1. 架设 LNMP系统环境 Debian12、php8.2-fpm、 nginx 2. 下载bookstack源码 3. 按照官网说明进行手动安装。 注意1&#xff1a;composer命令的安装&#xff0c;针对php的命令 下载、更名、安装 wget https://getcomposer.org/installer mv installer…

AI文章创作助手有什么特点

在当今信息爆炸的时代&#xff0c;文章创作已成为各行业必备技能。然而&#xff0c;如何高效地创作出质量优异且独具创意的文章仍是一个艰巨的挑战。AI文章创作助手应势而生&#xff0c;利用领先的自然语言处理和知识图谱技术&#xff0c;拥有丰富的自动创作和辅助创作能力&…

江苏省国家密码管理局副局长刘书伦等一行莅临通付盾调研

5月10日下午&#xff0c;江苏省国家密码管理局副局长刘书伦&#xff0c;苏州市国家密码管理局局长李家全、副局长王安方&#xff0c;苏州工业园区管委会党政办副主任陆万良等一行莅临通付盾&#xff0c;就密码及安全相关工作进行调研指导&#xff0c;通付盾创始人、CEO汪德嘉博…

Java框架学习04(SpringBoot自动装配原理)

1、什么是 SpringBoot 自动装配&#xff1f; 2、SpringBoot 是如何实现自动装配的&#xff1f;如何实现按需加载&#xff1f; 3、如何实现一个 Starter&#xff1f; 前言 使用过 Spring 的小伙伴&#xff0c;一定有被 XML 配置统治的恐惧。即使 Spring 后面引入了基于注解的配…

【Apifox】token的使用方式和脚本示例

目录 一、手动登录获取token 二、全自动登录实现方式 期望效果 实现思路 公共脚本示例 前言&#xff0c;关于token的使用&#xff0c;仅做了简单的demo测试token效果。 一、手动登录获取token 顾名思义&#xff0c;因为只有登录之后才有token的信息&#xff0c;所以在调…

最近遇到的2个问题:cd换路径失败以及sqli抓包失败

问题1&#xff1a;用cd的时候&#xff0c;仅仅输出所打内容&#xff0c;但是跳转失败 解决方法&#xff1a;添加强制跳转参数 /d 原来是&#xff1a; 改完之后&#xff1a; 如果仅仅是盘符之间的切换&#xff0c;可以不使用cd命令直接跳转磁盘&#xff0c;就是直接输入…

洗地机怎么选?高性价比家用洗地机推荐

洗地机是一款高效、智能的清洁设备&#xff0c;可轻松去除地面污渍&#xff0c;免除了传统清洁方式的繁琐和费时。采用高科技材料和技术&#xff0c;可快速有效地将地面污物清除&#xff0c;保持环境卫生和清爽。但是面对市场上众多的洗地机品牌&#xff0c;许多家人们都不知道…

从接口测试到自动化测试:企业级接口自动化测试实践详解

从入门到精通&#xff01;企业级接口自动化测试实战&#xff0c;详细教学&#xff01;&#xff08;自学必备视频&#xff09; 摘要&#xff1a; 本文将使用Python中的requests库进行接口自动化测试&#xff0c;通过编写测试用例、封装请求方法等步骤&#xff0c;实现简单的接口…

Melis4.0[D1s]:9.测试cedar多媒体解码库,视频和lvgl混合显示

文章目录 1.测试audio_test命令播放mp31.1 finish命令中文件路径的写法&#xff08;测试&#xff09; 2.测试cedar_test 命令播放mp42.1 不清除logo图层&#xff0c;无法显示视频2.2 使用disp_layer_alpha_test命令清除logo图层&#xff0c;正常播放视频 3. lvgl设置3.1 ui图层…

Http 响应头 Transfer-Encoding : chunked 导致 浏览器客户端请求错误问题

生产环境服务器规划如下 服务器类型网络环境cal.comnginx外网192.168.7.15:9200tomcat内网192.168.7.16:9200tomcat内网sdd.comnginx内网192.168.7.15:9100tomcat内网192.168.7.16:9100tomcat内网 192.168.7.15和192.168.7.16是做个负载均衡。目前的需求是用户访问外网的cal.…

SIEM工具保护云数据安全

规范对云中敏感数据的访问、跟踪已批准和未批准的应用程序的使用情况以及检测基础架构中影子 IT 应用程序的使用情况&#xff0c;将有助于防止针对云的内部和外部威胁。由于组织的云边界超出了传统的网络边界&#xff0c;因此实施严格的策略来保护敏感数据&#xff0c;并获得对…

宠物界的“富士康”IPO,福贝宠物冲刺上交所主板

随着社会经济的不断发展&#xff0c;人们生活水平的提高&#xff0c;宠物经济逐渐成为了一个备受关注的话题。无论是对于宠物爱好者还是宠物经济从业者&#xff0c;宠物经济的重要性都不容忽视。福贝宠物自然也是宠物经济下的产物。 福贝宠物在上交所主板IPO的申请获得受理。本…

开源单用户客服系统源码-上传附件功能-elementui 异步上传文件【唯一客服开发商】...

之前开源的单用户客服系统&#xff0c;上传附件成功后&#xff0c;还不能展示出文件形式&#xff0c;今天把上传展示出文件形式给开发完善一下。 我想要实现的效果是&#xff0c;展示出文件的名称和大小信息 后端返回一个带有文件信息的json结果&#xff0c;前端把该信息组织一…