我有一个数据记录,其中有一个名为title的字段。记录可能同时具有不同的标题语言。这样的记录有其他字段,其值不随语言而变化,所以我不在以下两个例子中列出它们:
Record #1:
Title (English): Hello
Record #2:
Title (English): World
Title (Spanish): mundo
目前标题有四种语言:英语,西班牙语,法语和中文。系统增长时将支持更多语言。
我是Elasticsearch的新手。我想为每种语言都有一个单独的索引。因此,对于记录#2,我将创建两个Elasticsearch文档(每种语言一个)并将文档发送到与其语言对应的索引。
在记录索引,更新,删除和搜索时,这是一个好的/可接受的设计吗?有什么问题吗?
对于这种设计,我认为它至少有好处:
感谢您的任何意见!
最佳。
答案 0 :(得分:3)
您的解决方案可能会正常运行,但如果您开始允许多语言搜索,则可能会遇到重复文档的问题。
每个字段有多个可能的值可能更为理想,例如:
您可以为每种语言提供完全不同的分析规则,而无需复制文档。
此方法将进一步允许您使用自己的分析规则向文档添加新标题。但是请注意,最后我检查过,如果你使用一个全新的自定义分析仪,你需要打开/关闭索引才能使它生效,这将导致几秒钟的停机时间。
我试着用一个端到端的例子来寻找一些时间来扩展这个答案。