我将在ElasticSearch中索引帖子。目前有两种语言:英语和中文。所以每个帖子都有一个(英语)或两个翻译加上一些两种语言共有的数据。我的问题是我应该如何索引帖子?
posts-en
和posts-cn
并分别存储帖子?创建单个索引posts
并保持数据格式如下:
{
commonParam1: 1,
commonParam2: "somevalue",
...
titleEn: "English title",
titleCn: "Chinese title",
contentEn: "Content EN",
contentCn: "Content CN",
...
}
答案 0 :(得分:1)
除非您有令人信服的理由将单个文档拆分为两个索引,否则我强烈建议将其全部保存在一个索引中。
使用一个索引,您可以轻松地为每个特定于语言的字段使用不同的分析器。在将来为新语言添加其他映射非常简单。它允许您在单个调用中索引每个文档,而不是两个,每种语言一个,如果您单独索引。您可以减少重复数据(例如公共数据)。
我还要好好看一下这篇文章:http://gibrown.wordpress.com/2013/05/01/three-principles-for-multilingal-indexing-in-elasticsearch/
在Elasticsearch中分析和索引多种语言是一个很好的讨论。