elasticsearch 为自动映射的附件字段指定分析器
使用Nest,我有一个函数可以设置所有Elasticsearch文档字段和Analyzer/SearchAnalyzer 其中一个字段是嵌套附件对象。这用于附加PDF,以便可以通过Elasticsearch对PDF的内容进行索引 在附件字段上运行“Analyze”Elasticsearch请求表明它正在使用“默认”分析器 我想知道的是如何为此附件字段(自动映射)指定自定义分析器 我想将Attachment.Content字段映射到我的名为“literalNameSynonymsAnalyzer”的分析器,因为这是一个在PDF内容被解析并转换为纯英语文本后保存其内容的字段elasticsearch 为自动映射的附件字段指定分析器,elasticsearch,nest,elasticsearch,Nest,使用Nest,我有一个函数可以设置所有Elasticsearch文档字段和Analyzer/SearchAnalyzer 其中一个字段是嵌套附件对象。这用于附加PDF,以便可以通过Elasticsearch对PDF的内容进行索引 在附件字段上运行“Analyze”Elasticsearch请求表明它正在使用“默认”分析器 我想知道的是如何为此附件字段(自动映射)指定自定义分析器 我想将Attachment.Content字段映射到我的名为“literalNameSynonymsAnalyzer”
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()));
}
受保护的覆盖TypeMappingDescriptor配置DocumentMapping(TypeMappingDescriptor映射)
{
返回映射
.AutoMap()
.Properties(prop=>prop
.Text(Text=>Text
.Name(Name=>Name.Id)
.Analyzer(“关键字”))
.Text(Text=>Text
.Name(Name=>Name.VehicleIds)
.Analyzer(“关键字”))
.Text(Text=>Text
.Name(Name=>Name.Titles)
.Analyzer(“英语”)
.SearchAnalyzer(“literalNameSynonymsAnalyzer”))
.Text(Text=>Text
.Name(Name=>Name.FileContent)
.Analyzer(“英语”)
.SearchAnalyzer(“literalNameSynonymsAnalyzer”))
.Object(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))));
}
受保护的任务CreateAttachmentPipeline()
{
返回Client.putpipelinesync(
“HondaPdfPipeline”,
p=>p
.处理器(pr=>pr
.附件(a=>a
.Field(f=>f.Base64FileContent)
.TargetField(f=>f.Attachment))
.删除(r=>r
.Field(f=>f.Base64FileContent));
}
可以指定
附件
映射的内容
属性以使用自定义分析器
受保护的覆盖TypeMappingDescriptor配置DocumentMapping(TypeMappingDescriptor映射)
{
返回映射
.AutoMap()
.Properties(prop=>prop
.Text(Text=>Text
.Name(Name=>Name.Id)
.Analyzer(“关键字”))
.Text(Text=>Text
.Name(Name=>Name.VehicleIds)
.Analyzer(“关键字”))
.Text(Text=>Text
.Name(Name=>Name.Titles)
.Analyzer(“英语”)
.SearchAnalyzer(“literalNameSynonymsAnalyzer”))
.Text(Text=>Text
.Name(Name=>Name.FileContent)
.Analyzer(“英语”)
.SearchAnalyzer(“literalNameSynonymsAnalyzer”))
.Object(a=>a
.Name(n=>n.Attachment)
.AutoMap()
.属性(pp=>pp
.Text(t=>t
.Name(n=>n.Content)
.Analyzer(“literalNameSynonymsAnalyzer”)
)
)
)
);
}