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

时间:2015-09-17 21:04:51

标签: java analyzer elasticsearch elasticsearch-java-api

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

  • "名称"
  • "信息"
  • "语言"
  • "类型"

和4个自定义分析器:

  • " english_custom_analyzer"
  • " french_custom_analyzer"
  • " spanish_custom_analyzer"
  • " arabic_custom_analyzer"

我希望能够指定在使用语言字段插入文档时使用的分析器。 所以如果语言是英语,我想使用英语分析器来处理文档字段,如果语言是法语,我想使用法语Analayzer。

我尝试创建一个名为" language_name_analyzer"的额外字段,在插入时用分析器名称填充该字段,并将分析器名称设置为" language_name_analyzer"。但是我得到了这个错误:

Cause: org.elasticsearch.index.mapper.MapperParsingException: Analyzer [language_name_analyzer] not found for field [datacontent_onair_title]

谢谢

1 个答案:

答案 0 :(得分:1)

首先,我建议重新考虑使用此功能,因为它来自elasticsearch 2.0的下一个主要版本has been removed

如果您仍想使用它,则需要在映射中指定language_name_analyzer字段的路径:

{
    "type1" : {
        "_analyzer" : {
            "path" : "language_name_analyzer"
        },
        "properties": {
            //// your other fields
        }
    }
}