我有一个来自MySQL数据库的多个实体,这些实体将在SOLR中编入索引。
为了获得最佳性能结果(查询时间),最佳方法是什么?
由于
答案 0 :(得分:3)
我会添加一些参数供您考虑(主要是劝阻每个实体的一个核心方法,但不仅仅是出于您特别要求的性能原因)
更多核心意味着更多终端。您的申请需要知道这些。您可能会发现跨核心运行查询很困难。例如,如果您使用公共属性(例如名称)进行搜索,则必须对每个核心运行多个查询并聚合结果。这将错过您在查询单个核心时开箱即用的相关性方面。
考虑向您的数据库发出最少的请求。 N + 1个jdbc连接大大减慢了索引速度。相反,尝试在视图中汇总结果,如果您可以触发单个查询,则索引速度会快得多。
核心不可能对公共属性进行范围查询。例如 - 如果您将书籍和音乐CD的价格存储在不同的核心中,则无法获得X和Y价格范围之间的所有产品。
分面功能也会受到影响。
因此,虽然您可以通过以每个实体1个核心的形式并行化来感知某些索引时间性能增益,但我觉得这可能会减少您可以从中受益的功能。