搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(三)-文档

news/2024/11/14 15:18:33/

文档

文档服务负责写入,包括批量;id获取文档;nested写入

写入文档

写入文档主要是构建IndexRequest,索引请求

Elasticsearch v8构建文档索引请求简单很多,可以直接接受Map数据

批量写入文档

批量操作可以融合增删改不同的操作,但在实际操作一般是同类型,没有混合操作,onesearch api设计为同类型操作批量

data 文档数据,服务层抓取

逻辑简单,构建Operation,代表一个操作; 构建BulkRequest请求

文档写入操作与构建单个写入请求类似,支持Map,并可识别nested,很方便

写入nested文档

场景那节介绍了nested mapping,一般用于扩展字段

文档数据上看,nested是Map的value类型是Map或者List,服务层解释schema对nested字段处理,其他同一般文档写入没区别

上图是文档写入的结果,extras内嵌多个key/value,若要增加扩展属性使用更新文档字段接口

更新文档字段

更新文档的字段,试想一下mysql文档的状态变更,相应更新搜索引擎状态,只需更新该字段,无需整个文档和内容重新获取,elasticsearch部分更新功能需要索引source属性设为true,即保留文档json,该功能也可以用于更新扩展属性

构建UpdateRequest,实际支持多个字段,这里封装弱化了功能

批量更新文档字段

批量更新文档字段

构建UpdateAction->构建BulkOperation->构建BulkRequest

其他

Id获取文档,删除,批量删除不介绍


http://www.ppmy.cn/news/1528264.html

相关文章

如何写数学建模竞赛论文

撰写数学建模论文的重要性不言而喻,它直接决定了成绩的好坏和获奖级别的高低。论文是竞赛成果的书面体现,同时也是科技写作的基础训练。评审论文的标准包括假设的合理性、建模的创新性、结果的合理性以及表述的清晰性。 一、论文的基本内容和需要注意的…

小程序开发设计-第一个小程序:注册小程序开发账号②

上一篇文章导航: 小程序开发设计-小程序简介①-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142217803?sharetypeblogdetail&sharerId142217803&sharereferPC&sharesourceqq_60872637&spm1011.2480.3001.8118 须知:不…

54.【C语言】 字符函数和字符串函数(strncpy,strncat,strncmp函数)

和strcpy,strcat,strcmp函数对应的是strncpy,strncat,strncmp函数 8.strncpy函数 *简单使用 cplusplus的介绍 点我跳转 翻译: 函数 strncpy char * strncpy ( char * destination, const char * source, size_t num ); 从字符串中复制一些字符 复制源(source)字符串的前num个…

查看ip地址的方法有几种?探索多样方法

在当今数字化时代,IP地址作为网络设备的唯一标识符,在网络连接、数据传输、网络安全等方面扮演着至关重要的角色。无论是普通用户进行网络设置,还是网络管理员进行故障排查,了解如何查看IP地址都是一项基础且必备的技能。本文将深…

spring mvc详细讲解(前后端分离模式)

在前后端分离模式下,Spring MVC 的作用主要集中在处理后端的业务逻辑和 API 接口,而不再直接管理视图部分。也就是说,Spring MVC 的重点是如何处理客户端的请求并返回数据(通常以 JSON 或 XML 格式),而视图…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(一)-概述

简介 此前的专栏介绍Onesearch1.0和2.0,详情参考4 参考资料,本文解释onesearch 3.0,从Elasticsearch6升级到Elasticsearch8代码实现 ,Elasticsearch8 废弃了high rest client,使用新的ElasticsearchClient,…

【编程底层原理】亿级数据表查询最后10条记录limit 99999990,10性能为啥特慢,而且数据库都被查宕机了

一、影响因素 查询一个包含1亿条数据的表,并使用 LIMIT 99999990, 10 来获取最后的10条记录,性能慢的原因主要是因为 LIMIT 子句的偏移量(offset)非常大。以下是一些导致性能问题的关键因素 大量跳过 - LIMIT 子句的前一个数字&…

使用Mockito进行单元测试

1、单元测试介绍 Mockito和Junit是用于单元测试的常用框架。单元测试即:从最小的可测试单元(如函数、方法或类)开始,确保每个单元都能按预期工作。单元测试是白盒测试的核心部分,它有助于发现单元内部的错误。 单元测试…