SOLR合集(核心)VS.SOLR合集(核心)许多

Gab*_*Col 4 optimization solr solaris

我有来自 MySQL 数据库的多个实体,这些实体将在 SOLR 中建立索引。

为了获得最佳性能结果(查询时间),最好的方法是什么?

  • 使用带有实体类型字段的单个 SOLR 集合(核心)
  • 或者为每个实体类型都有一个集合(核心)

谢谢

Sri*_*lan 5

我会添加更多参数供您考虑(主要是不鼓励每个实体一个核心的方法,但不仅仅是出于您特别要求的性能原因)

  1. 更多的核心意味着更多的端点。您的申请需要了解这一点。您可能会发现跨核运行查询很困难。例如,如果您按公共属性(例如名称)进行搜索,则必须对每个核心运行多个查询并聚合结果。这将错过您在查询单个核心时开箱即用的相关性方面。

  2. 考虑向数据库发出最少的请求。N+1 jdbc 连接会大大减慢索引速度。相反,尝试在视图中聚合结果,如果您可以触发单个查询,那么您的索引将会快得多。

  3. 无法跨核心对公共属性进行范围查询。例如 - 如果您将书籍和音乐 CD 的价格存储在不同的核心中,则您无法获得 X 和 Y 价格范围之间的所有产品。

  4. 刻面功能也会受到影响。

因此,虽然您可能会通过每个实体 1 个核心的形式并行化而感受到一些索引时间性能的提升,但我认为这可能会减少您可以从中受益的功能。