Indexing ElasticSearch类型和索引性能
我想了解将多种类型的文档索引到单个索引的性能影响,其中每种类型的项目数量不平衡(一种类型有数百万个,而另一种类型只有数千个文档)。我发现了一些索引上的问题,排除类型是否在单个索引中单独索引(或不单独索引)将有助于我。我是否可以假设类型是沿着关系数据库的行单独索引的,其中每个表实际上是分开的 如果上面的答案是否定的,并且所有类型都有效地集中在一起,那么我将列出我正在做的其他工作,以尝试获得更详细的输入 本例的用例是为Twitter用户捕获推文(为清晰起见,称其为所有者)。我有一个多租户环境,每个twitter所有者有一个索引。也就是说,关注单一所有者:Indexing ElasticSearch类型和索引性能,indexing,elasticsearch,Indexing,elasticsearch,我想了解将多种类型的文档索引到单个索引的性能影响,其中每种类型的项目数量不平衡(一种类型有数百万个,而另一种类型只有数千个文档)。我发现了一些索引上的问题,排除类型是否在单个索引中单独索引(或不单独索引)将有助于我。我是否可以假设类型是沿着关系数据库的行单独索引的,其中每个表实际上是分开的 如果上面的答案是否定的,并且所有类型都有效地集中在一起,那么我将列出我正在做的其他工作,以尝试获得更详细的输入 本例的用例是为Twitter用户捕获推文(为清晰起见,称其为所有者)。我有一个多租户环境,每个t
- 我将每个时间线(提及、直接消息、我的推文和完整的“主页”时间线)中的推文捕获到一个索引中,每个时间线类型在ElasticSearch中具有不同的映射
- 每个tweet都引用一个父类型,即使用父映射编写tweet的用户(可能是所有者,也可能不是所有者)。所有时间线类型只有一个“用户”类型
- 我在一个查询中只对一个所有者进行搜索和刻面,所以我不必担心自己在多个索引中搜索
- 主页时间线可能会捕获数百万条推文,而所有者自己的推文可能会产生数百条或数千条
- 用户文档通常使用Twitter时间线之外的信息进行更新,因此我希望避免(如果可能的话)必须在多个索引中保持同一用户对象的多个副本同步的情况
has_child
查询是否特别慢-例如,尝试将has_child
查询的性能与普通的术语
查询进行比较。在“记忆注意事项”下提供了一条线索:
在当前的实现中,所有的\u id
值都加载到内存(heap)中,以支持快速查找,因此请确保有足够的内存
这意味着在有数百万潜在子对象的情况下,任何has_child
查询都需要大量内存。确保足够的内存可用于此类操作,或考虑重新设计,以消除对<代码> HaseSoovi< /C>的需求。
我是否可以假设类型是沿着关系数据库的行单独索引的,其中每个表实际上是分开的
不,正如您所猜测的,所有类型都集中到一个索引中
我是否有办法理解问题是否与特定索引中的文档总数有关,是否与“has_child”过滤查询的操作有关,是否与查询或方面的其他糟糕设计有关,或者其他问题
索引中的文档总数显然是一个因素。另一个问题是has_child
查询是否特别慢-例如,尝试将has_child
查询的性能与普通的术语
查询进行比较。在“记忆注意事项”下提供了一条线索:
在当前的实现中,所有的\u id
值都加载到内存(heap)中,以支持快速查找,因此请确保有足够的内存
这意味着在有数百万潜在子对象的情况下,任何
has_child
查询都需要大量内存。确保足够的内存用于这些操作,或者考虑重新设计,以消除对<代码> HaseSoovi的需求。我的答案感觉不完整,但你的问题也是如此:请提供你使用的<代码> HasyScript < /代码>查询,以及它们之间关系的不同文档的例子。特别是,我不确定你所说的“排除‘主页时间线’类型”是什么意思——我只知道tweet和用户类型,这让我感到困惑