如何根据要插入的文档在 Elasticsearch 中使用不同的分析器?
How to use different analyzers in Elasticsearch depending on document to insert?
我的映射有 4 个字符串字段:
- "name"
- "info"
- "language"
- "genre"
和 4 个自定义分析器:
- "english_custom_analyzer"
- "french_custom_analyzer"
- "spanish_custom_analyzer"
- "arabic_custom_analyzer"
我希望能够在使用语言字段插入文档时指定要使用的分析器。
因此,如果语言是英语,我想对文档字段使用英语分析器,如果语言是法语,我想使用法语分析器。
我尝试创建一个名为 "language_name_analyzer" 的额外字段,在插入时用分析器名称填充该字段并将分析器名称设置为 "language_name_analyzer"。但是我得到这个错误:
Cause: org.elasticsearch.index.mapper.MapperParsingException: Analyzer [language_name_analyzer] not found for field [datacontent_onair_title]
谢谢
首先,我建议重新考虑使用此功能,因为它 has been removed 来自 elasticsearch 2.0 的下一个主要版本。
如果还想使用,需要在映射中指定language_name_analyzer
字段的路径:
{
"type1" : {
"_analyzer" : {
"path" : "language_name_analyzer"
},
"properties": {
//// your other fields
}
}
}
我的映射有 4 个字符串字段:
- "name"
- "info"
- "language"
- "genre"
和 4 个自定义分析器:
- "english_custom_analyzer"
- "french_custom_analyzer"
- "spanish_custom_analyzer"
- "arabic_custom_analyzer"
我希望能够在使用语言字段插入文档时指定要使用的分析器。 因此,如果语言是英语,我想对文档字段使用英语分析器,如果语言是法语,我想使用法语分析器。
我尝试创建一个名为 "language_name_analyzer" 的额外字段,在插入时用分析器名称填充该字段并将分析器名称设置为 "language_name_analyzer"。但是我得到这个错误:
Cause: org.elasticsearch.index.mapper.MapperParsingException: Analyzer [language_name_analyzer] not found for field [datacontent_onair_title]
谢谢
首先,我建议重新考虑使用此功能,因为它 has been removed 来自 elasticsearch 2.0 的下一个主要版本。
如果还想使用,需要在映射中指定language_name_analyzer
字段的路径:
{
"type1" : {
"_analyzer" : {
"path" : "language_name_analyzer"
},
"properties": {
//// your other fields
}
}
}