如何通过Elasticsearch C#客户端设置remove_binary选项?
在Elasticsearch 8官方C#客户端中设置attachment摄入管道的remove_binary选项
可以直接通过Elasticsearch官方C#客户端设置remove_binary选项,无需使用你提到的两种替代方案。具体操作可利用客户端的处理器参数扩展能力实现:
方法1:使用Fluent API构建摄入管道
using Elastic.Clients.Elasticsearch; using Elastic.Clients.Elasticsearch.Ingest; // 初始化客户端(假设已完成settings配置) var client = new ElasticsearchClient(settings); // 创建包含remove_binary参数的attachment摄入管道 var createPipelineResponse = client.Ingest.PutPipeline("attachment-processing-pipeline", p => p .Processors(pr => pr .Attachment<YourDocumentType>(a => a .Field(f => f.Data) // 指定存储二进制数据的字段 .TargetField(f => f.Attachment) // 指定解析后附件数据的目标字段 .AddParameter("remove_binary", true) // 添加remove_binary参数并设为true ) ) ); // 验证管道创建是否成功 if (!createPipelineResponse.IsSuccess()) { // 处理错误逻辑 }
方法2:使用对象初始化方式构建摄入管道
如果更习惯对象初始化风格,可通过Params字典传入参数:
var pipelineRequest = new PutPipelineRequest("attachment-processing-pipeline") { Processors = new List<IProcessor> { new AttachmentProcessor { Field = "data", TargetField = "attachment", Params = new Dictionary<string, object> { { "remove_binary", true } } } } }; var response = client.Ingest.PutPipeline(pipelineRequest);
说明
当客户端强类型API未直接暴露remove_binary属性时,通过AddParameter(Fluent API)或Params字典的方式,可手动传入Elasticsearch支持的任意处理器参数,完全符合官方文档中对remove_binary选项的配置要求。配置完成后,文档通过该管道摄入时,原始二进制数据字段会被自动移除,无需额外手动处理。
内容的提问来源于stack exchange,提问作者Jesse Q
相关产品推荐
相关产品推荐

