1

我正在构建字典并希望使用 elasticsearch 作为搜索引擎。它应该支持多种语言,所以我的数据库看起来像这样:

| left_lang | right_lang | left_word | right_word |
| de        | en         | Schuh     | shoe       |
| da        | de         | sko       | Schuh      |

在哪个级别可以定义不同的分析器设置(如词干分析器等)?我可以为文档的每个字段设置不同的设置吗?例如,在第一个文档中,left_word 使用德语设置,right_words 使用英语设置,而在第二个文档中,left_words 使用丹麦语设置,right_words 使用德语设置?或者我可以在类型或索引级别上定义这些吗?

4

1 回答 1

2

是的,您可以为每个字段定义这些设置。您甚至可以使用“多字段”映射定义使用多种语言设置进行分析的字段。

{
  "settings":{
     "index":{
        "analysis":{
           "analyzer":{
              "analyzer_english":{
                 "tokenizer":[...],
                 "filter":[...]
              },
              "analyzer_german":{
                 "tokenizer":[...],
                 "filter":[...]
              }
           }
        }
     }
  },
  "mappings":{
     "test":{
        "properties":{
           "left_word":{
              "analyzer":"analyzer_german",
              "type":"string"
           },
           "right_word":{
              "analyzer":"analyzer_english",
              "type":"string"
           },
           "combo_word":{
              "type":"multi_field",
              "fields":{
                 "combo_word":{
                    "analyzer":"analyzer_german",
                    "type":"string"
                 },
                 "combo_english":{
                    "analyzer":"analyzer_english",
                    "type":"string"
                 }
              }
           }
        }
     }
  }
}
于 2013-02-11T01:58:26.037 回答