12

添加索引的开销是有据可查的,但我无法找到关于何时使用多个索引来处理被索引的各种文档类型的良好信息。

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

假设我们有以下实体

  • 产品(名称、ProductID、ProductCategoryID、商店列表)
  • 产品类别(名称、ProductCategoryID)
  • 商店(名称、商店 ID)

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

我很难确定在一个索引与多个索引上画线的位置。

如果我们添加一个不相关的实体“网页”会怎样。绝对是一个单独的索引?

4

2 回答 2

9

一段非常有趣的视频,解释了 Shay Banon 的 elasticsearch “数据设计模式”

http://vimeo.com/44716955

这个确切的问题在 13:40 得到回答,通过查看类型、过滤器路由的概念来检查不同的数据流

问候

于 2014-01-13T12:27:44.643 回答
7

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

我读到有些人有太多并发索引的问题(每种类型 1 个索引)。将相关类型统一在同一个索引中对性能和健壮性更好。

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

于 2013-01-18T09:41:47.223 回答