Elasticsearch(四)【Elasticsearch.Net之Post数据】

【ElasticSearch(四)】PUT&POST更新数据、DELETE删除数据、_bulk批量操作 【ElasticSearch(四)】PUT/POST更新数据、DELETE删除数据、_bulk批量操作 先查询下现在的情况GET http://localhost:9200/customer/external/1 { "_index": "customer", "_type": "external", "_id": "1", "_version": 3, ... 阅读详情

Post数据

低层客户端允许您直接发布string 或byte[] 数组。 除此之外,如果您传递一个string或object的集合,它们将使用Elasticsearch的特殊bulk/multi (批量/多)格式进行序列化。

隐式转换

即使在低级别客户端上PostData的参数需要PostData<object>,您可以依靠隐式转换来完全抽象PostData的概念。 您可以从以下类型隐式转换

  • string
  • byte[]
  • collection of string
  • collection of object
  • object

我们来演示一些断言的例子

PostData<object> fromString = @string;
PostData<object> fromByteArray = bytes;
PostData<object> fromListOfString = collectionOfStrings;
PostData<object> fromListOfObject = collectionOfObjects;
PostData<object> fromObject = @object;

fromByteArray.WrittenBytes.Should().BeSameAs(bytes);

WrittenBytes将始终设置,如果它源自byte[]

var fromString = ImplicitlyConvertsFrom(@string);

var fromByteArray = ImplicitlyConvertsFrom(bytes);
var fromListOfString = ImplicitlyConvertsFrom(listOfStrings);
var fromListOfObject = ImplicitlyConvertsFrom(listOfObjects);
var fromObject = ImplicitlyConvertsFrom(@object);

PostData字节始终设置,如果它源自byte[]

romByteArray.WrittenBytes.Should().BeSameAs(bytes);

fromString.Type.Should().Be(PostType.LiteralString);
fromByteArray.Type.Should().Be(PostType.ByteArray);
fromListOfString.Type.Should().Be(PostType.EnumerableOfString);
fromListOfObject.Type.Should().Be(PostType.EnumerableOfObject);
fromObject.Type.Should().Be(PostType.Serializable);

Type属性代表构建post数据的原始类型

fromString.Type.Should().Be(PostType.LiteralString);
fromByteArray.Type.Should().Be(PostType.ByteArray);
fromListOfString.Type.Should().Be(PostType.EnumerableOfString);
fromListOfObject.Type.Should().Be(PostType.EnumerableOfObject);
fromObject.Type.Should().Be(PostType.Serializable);

并将PostData<object>实例传递给接受PostData<object>作为参数的方法不会再次包装

fromString = MethodThatAcceptsPostData(fromString);
fromByteArray = MethodThatAcceptsPostData(fromByteArray);
fromListOfString = MethodThatAcceptsPostData(fromListOfString);
fromListOfObject = MethodThatAcceptsPostData(fromListOfObject);
fromObject = MethodThatAcceptsPostData(fromObject);

fromString.Type.Should().Be(PostType.LiteralString);
fromByteArray.Type.Should().Be(PostType.ByteArray);
fromListOfString.Type.Should().Be(PostType.EnumerableOfString);
fromListOfObject.Type.Should().Be(PostType.EnumerableOfObject);
fromObject.Type.Should().Be(PostType.Serializable);

每个隐式转换的类型的行为略有不同。
对于string,在请求中发送UTF-8字节,并为该字节分配WrittenBytes属性

await Post(() => @string, writes: Utf8Bytes(@string), writtenBytesIsSet: true, settings: settings);

类似地,对于byte[],字节逐字地发送,WrittenBytes属性被分配字节

await Post(() => bytes, writes: bytes, writtenBytesIsSet: true, settings: settings);

当传递string的集合时,客户端会认为它是有效的序列化json的集合,因此每个都加入换行符,确保有一个尾随的换行符。 与string和byte[]一样,WrittenBytes属性分配了字符串集合的UTF-8字节

await Post(() => collectionOfStrings, writes: utf8BytesOfListOfStrings, writtenBytesIsSet: true, settings: settings);

当传递object的集合时,客户端会认为它是一个需要单独序列化的对象的集合,并且与换行符加入。 与收集字符串一样,客户端确保有一个尾随的换行符。

await Post(() => collectionOfObjects, writes: utf8BytesOfCollectionOfObjects, writtenBytesIsSet: false, settings: settings);

在所有其他情况下,Post数据按原样序列化,WrittenBytes未分配

await Post(() => @object, writes: utf8ObjectBytes, writtenBytesIsSet: false, settings: settings);

强制写入字节设置

如果要保留出现的请求的副本,可以在ConnectionConfiguration上设置DisableDirectStreaming。 在这样做时,序列化的字节首先被写入专用的MemoryStream,以便客户机可以获得串行化的字节

settings = new ConnectionConfiguration().DisableDirectStreaming();

await Post(() => collectionOfObjects, writes: utf8BytesOfCollectionOfObjects, writtenBytesIsSet: true, settings: settings);

当使用DisableDirectStreaming启用序列化简单对象时也可以观察到此行为

await Post(() => @object, writes: utf8ObjectBytes, writtenBytesIsSet: true, settings: settings);
Go搜索引擎:Elasticsearch与Meilisearch Elasticsearch用olivere/elastic集成,mapping里数值字段用数值类型,文本搜索用text,精确匹配用keyword,复杂查询用bool组合must和filter。Meilisearch单二进制部署,HTTP API集成简单,适合中小数据量的即时搜索。mapping类型设错会导致查询无结果,上线前用少量数据验证。选型看数据量和搜索复杂度,别对小数据量上ES,也别对大数据量指望LIKE。 阅读详情

相关推荐

Elasticsearch--入门-_put & post方式添加数据---全文检索引擎ElasticSearch工作笔记005

我们要索引一个文档,实际上就是,往数据库中添加一条记录,我们知道文档,相当于mysql中的一条记录. 然后我们要保存一个数据在哪个索引的哪个类型下,相当于mysql,要保存在哪个数据库的哪个表中. 然后我们要添加的数据,在elasticsearch中都是json格式的,所以我们准备了一些json数据. 然后我们去发送请求,put请求, http://192.168.56.10:9200/customer/external/1 这里customer,相当于某个索引是指的是哪个数据库 然..

添柴程序猿的专栏 1560

【ES从入门到实战】五、全文检索-ElasticSearch-入门-put&post新增数据

接第4节 2、索引一个文档(对应成Mysql就是保存一条记录) 保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识PUT customer/external/1; 在 customer 索引下的 external 类型下保存 1 号数据为 PUT customer/external/1 { “name”:“lohn Doe” } PUT 和 POST 都可以; POST 新增。如果不指定id,会自动生成 id。指定 id 就会修改这个数据,并新增版本号; PUT 可以新增也可以修改。PUT 必.

m0_67391683的博客 4483

(超详细)互补格雷码+相移码求解包裹相位(Python实现)

记录实现“互补格雷码+相移码”求解包裹相位的编码过程。也可以叫它“5+4”法,5代表五幅格雷码图像,4代表四步相移法的四张正弦条纹图。

暴雨梨花博客 3万+

Elasticsearch(二)【Elasticsearch.Net基本使用】

低级客户端ElasticLowLevelClient是一个低级的,无依赖的客户端,对如何构建和表示您的请求和响应没有意见。它可以从Visual Studio中的包管理器控制台安装使用Install-Package Elasticsearch.Net连接要连接到本地运行在http://localhost:9200上的Elasticsearch就像实例化客户端的一个新实例一样简单var lowlevel

极客神殿 9526

树莓派学习系列7——GPIO基础

前言 原来学单片机的时候,就是通过一系列的引脚来控制单片机。终于学到了通过引脚来控制树莓派了。话不多说咱们先来了解基础。

我在等那么一天的博客 1万+

模型参考自适应控制(MRAC):让PID参数动态优化

本文深入解析模型参考自适应控制(MRAC)技术,它通过实时调整PID参数,使控制系统能自动适应系统特性变化和外部干扰。文章详细介绍了MRAC的工作原理、数学基础,并提供了用C语言实现的实战代码示例,帮助工程师解决传统PID控制在非线性、时变系统中参数整定繁琐的难题。

tequila的博客 902

【elasticsearch】elasticsearch索引

es的索引就相当于mysql的数据库。如果我们需要用mysql存储使用数据,首先肯定需要一个database,一个库,所以在es中,我们操作数据时同样也需要一个库的概念的,就是Index–索引。前期的学习,是直接用api工具进行elasticsearch的接口请求的,这里。...

return 1250

PRIDE数据库20年:2025更新

PRoteomics IDEntifications (PRIDE)数据库(https://www.ebi.ac.uk/pride/)是全球领先的基于质谱(MS)的蛋白质组学数据存储库,也是ProteomeXchange联盟的创始成员之一。本文总结了过去3年中PRIDE资源及相关工具的发展情况。提交到PRIDE存档的数据集数量平均每月达到约534个。主要得益于基础设施的持续改进,如用于超大数据集的新文件传输协议(Globus)、新的数据重新提交流程以及自动数据集验证过程。

多组・学・多组学 2058

ES使用命令说明总结

ES使用命令说明 索引映射相关 # 查询索引 GET goods_index # 添加索引 PUT person # 添加映射 PUT person/_mapping { "properties": { "name": { "type":"keyword" }, "age": { "type":"integer" } } } # 查询映射 GET person/_mapping # 创建并添加映射 PUT perso

abzz的博客 2370

【滚雪球学数学建模】第4.1节·概率与统计建模,一文搞懂!

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1348

全局注意机制 GAM | Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions

全局注意机制 GAM

Coding... 2573

.Net使用ElasticSearch

.Net使用ElasticSearch

黄瓜炒鸡蛋的博客 2326

90. 将 SAP ABAP 内表内容本地导出成 Excel 文件

这里文件扩展名为 csv,全称是 Comma-Separated Values,意思是这种类型的文件内容,由逗号分隔。除了 ASC 之外,另一个可用的选项是 BIN,适用于 PDF,EXE 等二进制文件的导出。支持海量的输入和输出参数,我们这个简单的本地导出场景里,大部分参数都用不上。这个分隔符的添加逻辑,编写在上图红色高亮矩形框内,使用的语法是。本教程有学习者向我提问,询问如何将 ABAP 某某函数的某某输出参数的值,导出成本地 Excel 文件。把这个内表的内容,下载到本地,以本地文件的方式保存。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1742

ElasticSearch入门(1)——了解ES

ElasticSearch入门(1)——了解ES 文章目录ElasticSearch入门(1)——了解ES1. Lucene2. ElasticSearch1. ES开启跨域2. 索引 - index3. 类型 - type4. 文档 - document5. 分片 - shared6. 集群 - cluster7. 节点 - Node3. IK分词器1. ik_smart - 最少切分2. ik_max_word - 最细粒度划分3. 增加自定义字典4. 请求方式1. PUT2. GET3. POST5.

qq_40788718的博客 2427

《SOC架构-ARM架构-文档导读》-目录

小白请看“Armv8/Armv9架构从入门到精通”专栏。以翻译为主的,深度深度深度深度/深入深入深入 学习ARM架构的文章。

baron-周贺贺-代码改变世界ctw 2083

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ES 总结

es

KANGBboy的博客 1091

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ASP.NET Core 如何使用 C# 向端点发出 POST 请求

使用 JWT Bearer Authentication 向端点发送 POST 消息非常简单。只需使用HttpRequestMessage类和SendAsync()方法即可。使用 . 将 JSON 数据发布到端点非常容易HttpClient,WebClient并且HttpWebRequest不应使用,因为在撰写本文时它们已被弃用。使用 C#,将 JSON POST 到 REST API 端点;本文需要 ASP .NET Core,并兼容 .NET Core 3.1、.NET 6和.NET 8。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 11万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

实时搜索引擎Elasticsearch

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

a123123sdf的博客 1181

传感器连接mysql_获取传感器数据并传入数据库-HTTP/POST/ASP.NET

获取传感器数据并传入数据库-HTTP/POST/ASP.NET很久前,做过传感器数据采集相关的小项目,需求是通过单片机IO收集传感器数据,然后通过网络模块(GSM/WI-FI)作为客户端,将数据(JSON)通过TCP/IP协议上传至服务器TCP端口。同时,服务器上运行监听程序,解析JSON随后转存到数据库。这种模式在实际应用中的效果并不理想,当时遇到的问题有:Client/Server之间建立连接...

weixin_30760143的博客 5941

Elasticsearch——详解ES特点,基本概念以及ES常用api操作

详解ES的基础概念,包括集群,节点,文档,类型,索引等等。介绍es的查询语句,搜索语句,全文搜索语句,高亮搜索结果以及聚合能力

zekser的博客 1528

.net Core WebApi 用WebClient提交POST数据

最近在研究.net Core 以及.net Core下的WebAPI,以前开发服务习惯使用MVC,没使用过Webapi, 今天在学习是遇到WebAPI POST数据接收的问题,将其中的解决方案做一下笔记。 1. 复杂实体类型: 服务端代码: [HttpPost()] public void Post([FromBody] ServerInfo SI) { Global.Dat...

Jafucong的博客 4845

asp.net post任何类型数据流

最近做了一个post数据流的程序,从网上搜索了一下,感觉网络上的东西大都类似,抄袭者甚多 ,且只能post文本文件,对于其它格式的文件post提的很少,下面的代码可以post任何类型文件,主要是把数据流统一转换为base64格式。(本博客所有文章均为原创,未经许可不可转载,)//------------------------------发送部分------------------------

科雅客的专栏 2863

ASP.NET POST方式提交数据!

   string url = "网址";   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);   string s = "要提交的数据";   byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes (LoginInfo);   req.Method = "POS

Tanke的专栏 2782

Asp.Net模拟post提交数据方法

方法1: System.Net.WebClient WebClientObj = new System.Net.WebClient(); System.Collections.Specialized.NameValueCollection PostVars = new System.Collections.Specialized.NameValue...

weixin_38170853的博客 471

.net post提交后接收返回数据_【119】HTTP 方法:get 和 post

内容目录(原文见公众号python宝)一、get 和 post的区别二、get 方法三、post 方法一、get 和 post的区别在客户机和服务器之间进行请求-响应时,两种最常被用到的HTTP 请求方法是:GET 和 POST。GET- 从指定的资源请求数据。POST- 向指定的资源提交要被处理的数据 注:HTTP是什么?HTTP是基于TCP/IP的关于数据...

weixin_39716105的博客 335
上一篇: Elasticsearch(三)【.Net客户端API规范--生命周期】
下一篇: .NET Core Windows环境安装与体验
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值