使用nest,我有一个函数可以设置所有elasticsearch文档字段和analyzers/searchanalyzers。
其中一个字段是嵌套附件对象。它用于附加pdf,以便可以通过elasticsearch对pdf的内容进行索引。
在附件字段上运行“analyze”elasticsearch请求表明它正在使用“default”分析器。
我想知道的是如何为这个附件字段指定一个自定义分析器(它是自动Map的)
我想将attachment.content字段Map到名为“literalnamesynonymanalyzer”的分析器,因为这是一个在解析并转换为纯英语文本后保存pdf内容的字段。
protected override TypeMappingDescriptor<HondaData> ConfigureDocumentMapping(TypeMappingDescriptor<HondaData> mapping)
{
return mapping
.AutoMap()
.Properties(prop => prop
.Text(text => text
.Name(name => name.Id)
.Analyzer("keyword"))
.Text(text => text
.Name(name => name.VehicleIds)
.Analyzer("keyword"))
.Text(text => text
.Name(name => name.Titles)
.Analyzer("english")
.SearchAnalyzer("literalNameSynonymsAnalyzer"))
.Text(text => text
.Name(name => name.FileContent)
.Analyzer("english")
.SearchAnalyzer("literalNameSynonymsAnalyzer"))
.Object<Attachment>(a => a
.Name(n => n.Attachment)
.AutoMap()));
}
这是管道函数
protected Task CreateAttachmentPipeline()
{
return Client.PutPipelineAsync(
"HondaPdfPipeline",
p => p
.Processors(pr => pr
.Attachment<HondaData>(a => a
.Field(f => f.Base64FileContent)
.TargetField(f => f.Attachment))
.Remove<HondaData>(r => r
.Field(f => f.Base64FileContent))));
}
1条答案
按热度按时间wqsoz72f1#
这个
Content
财产Attachment
可以指定Map以使用自定义分析器