如何根据要插入的文档在 Elasticsearch 中使用不同的分析器?

How to use different analyzers in Elasticsearch depending on document to insert?

我的映射有 4 个字符串字段:

和 4 个自定义分析器:

我希望能够在使用语言字段插入文档时指定要使用的分析器。 因此,如果语言是英语,我想对文档字段使用英语分析器,如果语言是法语,我想使用法语分析器。

我尝试创建一个名为 "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
        }
    }
}