寻求有关Elasticsearch索引设计的建议

时间:2016-05-20 01:38:08

标签: elasticsearch

我们正在构建我们的搜索平台,该平台将使用ES 2.x为多个站点(可能是70多个站点)提供多语言(约50种语言)支持的搜索服务(索引和搜索)。

一些基本要求:   1)。所有网站都会分享一些常见的索引字段,例如标题,说明,关键字等,但允许网站所有者定义其特定字段,例如网站销售产品时的价格。

2)。我们可能会在一个搜索页面上显示来自多个网站的混合搜索结果

3)。无论何时登上新网站,都不应影响现有网站的索引。

到目前为止,我们正在考虑一些选项。

  1. 为不同的网站构建不同的索引 缺点: 1)难以控制(?)跨站点搜索结果的相关性,因为不同的站点在不同的索引中。 2)难以维护,70多个站点将有70多个索引,看起来太多3)索引太多可能会带来性能问题

  2. 构建一个由所有站点共享的大索引,但不同的站点在索引下具有不同的类型。 PUT / oneindex / site1 / PUT / oneindex / site2 / ...

    缺点: 1)当站点需要更新其站点特定的映射时,无法仅重新索引该类型的文档,在ES 1.x中,可以删除旧类型并添加具有更新映射的新类型,但是从ES 2.x开始,它无法再删除该类型,因此如果一种类型需要更新映射,似乎唯一的方法是重新创建整个索引并重新索引。

  3. 1& 2需要为每种语言构建语言特定的多字段,对于需要语言分析器的字段,例如,对于“标题”字段,我们需要定义“title_en”,“title_de”,“title_fr”等等。

    上述两个选项都不是完美的......

    有没有人有更好的解决方案?

0 个答案:

没有答案