7

我需要一些帮助来决定在单个 Solr 实例中创建单个索引与在单个 Solr 实例中创建多个核心,每个核心服务一个索引。我的理解是,solr 中的单个索引通常用于索引一种类型的文档。当您拥有不同的文档类型时,最佳做法是什么?例如,如果您想索引发票交易的详细信息,您可以创建一个包含发票交易文档字段的模式,如下所示;

  • 发票日期
  • 截止日期
  • 发票总结
  • 帐单联系人
  • invoiceLineItems
  • 笔记

假设您还想索引产品的详细信息,您是否会创建一个具有如下架构的新文档类型;

  • 产品代码
  • 产品描述
  • 售价
  • 购买价格
  • 手上
  • 平均成本
  • 笔记

并在 Solr 中创建一个新核心来索引产品文档?或者您会将交易和产品合并到一个模式中,如下所示;

  • 发票日期
  • 截止日期
  • 发票总结
  • 帐单联系人
  • invoiceLineItems
  • 产品代码
  • 产品描述
  • 售价
  • 购买价格
  • 手上
  • 平均成本
  • 笔记

并且只有一个核心索引上述文档,而不是有一个“发票”核心和一个“产品”核心索引两个不同的文档?

我想当字段相似时,像Solr wiki中建议的那样拥有一个单一的平面索引是有意义的,但是在上面这样的示例中,数据甚至没有远程相关,因为它们是独立的实体。我见过人们建议添加一个额外的字段来区分不同实体的情况,例如表名字段或类似字段,并根据表名字段过滤查询,我猜这是可行的。我不确定当您有如下用例时,它的可扩展性有多大;

“在发票中搜索关键字“John”,要搜索的字段是“billingContact”、“invoiceSummary”、“notes”。在查询时提升“billingContact”字段。同时搜索产品“John”,要搜索的字段是“ productDescription'、'supplier'、'notes'。在查询时提升 'supplier'。仅返回 100 个发票和 100 个产品。

我正在处理的应用程序需要从一个表单中搜索发票和产品。应用程序中没有不同的部分可以搜索不同的内容。

我担心将所有内容都放在一个索引中;

1)索引规模大如:5000万张发票+5000万单索引产品

2) 重新索引该大小的索引。

3)索引调整:调整/调整每个单独的索引以服务于特定的预期搜索结果会更容易吗?而不是尝试在单个索引中做到这一点?

4) 我们决定将来也将计费联系方式编入索引。这将添加更多要索引的字段,并有助于我在第 1 点和第 2 点中的担忧。

4

1 回答 1

0

仅退回 100 张发票和 100 种产品。

在查询时提升“billingContact”字段 在查询时提升“供应商”

这表明即使您搜索相同的术语,您也将它们作为单独的概念进行搜索。

基于这一点和缺乏共同领域,我建议从单独的集合开始。

于 2013-10-28T02:59:13.270 回答