optimization - SOLR 一个集合(核心)VS。许多

标签 optimization solr solaris

我有来自 MySQL 数据库的多个实体,它们将在 SOLR 中被索引。

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

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

  • 谢谢

    最佳答案

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

  • 更多的核心意味着更多的端点。您的应用程序需要了解这一点。您可能会发现跨内核运行查询很困难。例如,如果您通过一个通用属性(比如名称)进行搜索,您将不得不对每个核心运行多个查询并聚合结果。这将错过您在查询单个核心时开箱即用的相关性方面。
  • 考虑向您的数据库发出最少的请求。 N+1 jdbc 连接大大减慢了索引速度。相反,尝试在 View 中聚合您的结果,如果您可以触发单个查询,您的索引将更快。
  • 跨核心将无法对公共(public)属性进行范围查询。例如 - 如果您有存储在不同内核中的书籍和音乐 Cd 的价格,您无法获得 X 和 Y 价格范围之间的所有产品。
  • 刻面功能也将受到影响。

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

    关于optimization - SOLR 一个集合(核心)VS。许多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388140/

    相关文章:

    apache - Solr 4 - 缺少必填字段 : uuid

    java - 如何将 Apache Solr 搜索与我的 Java webapp 集成?

    c - 在 Solaris 5.10 上使用集群()

    c++ - ld : fatal: library -lm: not found in solaris 10

    c# 并行与顺序

    c++ - 文件夹和命名空间会影响 C++ 和跨平台的性能吗?

    hadoop - Solr 中的结构化和非结构化数据索引

    c - 参数在传递到函数时被破坏?

    c++ - MD5计算

    python - 加快Python中的集成功能