在ElasticSearch中,我应该为单独但相关的实体使用多个索引吗?

时间:2013-01-08 17:56:21

标签: elasticsearch

添加索引的开销已有详细记录,但我无法找到有关何时使用多个索引的有关索引的各种文档类型的良好信息。

以下是一个说明问题的通用示例:

假设我们有以下实体

  • 产品(名称,产品ID,产品类别ID,商店列表)
  • 产品类别(名称,ProductCategoryID)
  • 商店(名称,StoreID)

我应该将这三种不同类型的文档转储到一个索引中,每个索引都有适当的elasticsearch type吗?

我很难确定在一个与多个索引之间绘制线的位置。

如果我们添加一个不相关的实体“网页”,该怎么办?绝对是一个单独的索引?

2 个答案:

答案 0 :(得分:8)

一个非常有趣的视频解释Shay Banon的弹性搜索“数据设计模式”

http://vimeo.com/44716955

通过查看类型,过滤器路由

的概念,检查不同数据流的13:40回答了这个确切的问题

此致

答案 1 :(得分:7)

我最近从头开始建模ElasticSearch后端,从我的角度来看,最好的选择是将所有相关文档类型放在同一个索引中。

我读到some people had problems with too many concurrent indexes(每种类型1个索引)。在同一索引中统一相关类型的性能和稳健性会更好。

此外,如果类型在同一索引中,您可以使用" _parent"字段创建分层模型,允许您搜索有趣的功能" has_child"和" has_parent"当然,您不必在模型中复制数据。