我正在构建一个字典,并希望使用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使用德语?或者我可以在类型或索引级别定义这些吗?
答案 0 :(得分:2)
是的,您可以按字段定义这些设置。您甚至可以使用“Multi-field”映射定义使用多种语言设置分析的字段。
{
"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"
}
}
}
}
}
}
}