ili*_*uve 27 multilingual full-text-indexing elasticsearch
想知道在弹性搜索中使用多语言索引和搜索的最佳实践或经验是什么.我通读了大量资源,尽可能提炼出可用的索引选项:
每种语言单独的索引;
用于多语言场的多字段类型;
所有可能语言的单独字段.
所以,想知道选择这些选项中的一个或另一个(或者其他一些我错过的)的副作用是什么.我想有更多的索引并没有真正减慢群集的速度(如果它不是一些大量的语言),所以不确定从选择2或3可以得到什么,除了可能更容易维护.
欢迎任何帮助!
Sho*_*ote 21
有点老问题,但无论如何信息可能会有所帮助.索引/映射结构主要取决于您的用例.
您是否需要同时使用所有语言或者只使用一种语言?
选项2和3的一般注释:使用其中一个选项,您可以根据语言对文档进行不同的评分,因为您可以为每个语言字段定义评分.如果需要添加更多语言,可以向映射添加新字段,但无法删除或更改现有字段.因此,您必须重新索引所有内容,并将已删除语言的属性设置为空.您需要为每种新语言添加新的分析器.但是需要先关闭索引并在更改后打开它.
"book_title": {
"type": "multi_field",
"fields": {
"english": {
"type": "string"
},
"german": {
"type": "string"
},
"italian": {
"type": "string"
},
}
}
在这里,您可以使用特定语言(例如" book_title.english ")或所有语言(使用" book_title ")进行搜索.您应该注意不要使用" book_title "名称更新字段,而是使用" book_title.[language] ".使用" book_title "将导致更新所有具有相同数据的子字段(可能不是您想要的)
选项3:完全分离的字段 - 如果需要按照选项2进行搜索,则需要将它们全部放在搜索查询中,在索引方面更安全,因为您无法错误地覆盖所有语言
选项4的想法 - 使用每种语言类型:如果您只有一种类型的文档,则可以使用它.每种语言可以有不同的字段.如果您有多种文档类型,则无用
| 归档时间: |
|
| 查看次数: |
9139 次 |
| 最近记录: |