2014-07-13 170 views
2

我将索引ElasticSearch中的帖子。目前有两种语言:英文和中文。因此,每篇文章都有一个(英文)或两个翻译以及两种语言通用的一些数据。我的问题是我该如何索引帖子?多语言弹性搜索

  1. 创建两个索引:posts-enposts-cn并分别存储文章?
  2. 创建一个索引posts,并保持数据格式是这样的:

    { 
        commonParam1: 1, 
        commonParam2: "somevalue", 
        ... 
        titleEn: "English title", 
        titleCn: "Chinese title", 
        contentEn: "Content EN", 
        contentCn: "Content CN", 
        ... 
    } 
    

回答

1

除非你有一个令人信服的理由,跨越两个指标分为单个文档我强烈建议保持它都在同一个指数。

使用一个索引,您可以轻松地为每个语言特定字段使用不同的分析器。将来为新语言添加其他映射相当简单。如果您单独编制索引,它允许您在一次调用中为每个文档编制索引,而不是每个语言编制两个索引。您可以减少重复的数据(例如公共数据)。

我也想好好看看这个帖子:http://gibrown.wordpress.com/2013/05/01/three-principles-for-multilingal-indexing-in-elasticsearch/

这是在分析和索引多种语言成Elasticsearch了很好的讨论。