2

我有一个运行 2 个内核的 Apache Solr 安装:

  • 机器核心
  • 通知核心

每个核心都索引一个数据库表,因此核心的内容完全不同 - 按结构和实际内容现在我想在两个核心上运行搜索查询,最后从 2 个核心中获得一个结果集结合。举一个简单的例子,如果我要搜索“2010”,我希望我的结果是相关的机器文档和通知文档,每个文档都来自自己的核心,但组合为一个结果集,按相关性排序。预期结果集示例:

  • 机器 #1
  • 机器 #2
  • 通知 #1
  • 机器#3
  • 通知 #2
  • 通知#3
  • 机器 #4

我将通过 SolrJ [Java 连接器] 与 Solr 进行交互。

有人知道吗?我想要做的甚至可能吗?

谢谢!

4

2 回答 2

0

如果将您的问题描述为“我有一个电子商务门户网站,我在其中销售书籍、电影、音乐等以及多个 solr 核心,每个核心都在搜索其中一个”,则您的问题类似于问题。说书名也可能是电影名,但是当要从多个绝对不同的模式中检索结果时,如何解决排名/相关性难题?

因为这个 Solr 不会为您提供开箱即用的东西。您将必须建立一些群体智慧或集体智慧算法来重新排名并在您的每个核心返回的之上做相关的事情。

于 2012-02-14T10:26:02.260 回答
0

内核的内容完全不同——结构和实际内容不同

我希望我的结果是相关的机器文档和通知文档,每个文档都来自自己的核心,但合并为一个结果集

意味着这两个核心可能有一些公共字段,并且您希望它们显示在组合结果集中。

我建议使用这些常见领域创建一个新核心。唯一的缺点是您必须将机器和通知索引到两个核心。

于 2015-12-02T19:43:02.457 回答