搜索多个SOLR核心并返回一个结果集

Rih*_*eij 28 solr

我们在SOLR中有几个核心设置,并希望搜索这些核心并返回单个结果集.

更多背景:我们有一个SOLR核心,我们索引我们的内部博客引擎.我们还有一个SOLR核心,我们为CMS系统编制索引.我们希望搜索这两个核心,但查看单个结果集.

我知道文档中有相关实体,但我们希望将内核分开,以便于维护和冗余.

我们使用SolrSharp作为搜索SOLR的包装器.任何建议或方向将不胜感激.

Bri*_*ian 21

从Solr 1.3开始,Solr就有了不错的多核搜索功能.请阅读分布式搜索文章,其中介绍了如何使用shards参数跨多个核查询并将结果作为一个数据集返回.

  • Eric - 我的策略是使用具有合并模式的单独核心,该模式具有实现的搜索处理程序以搜索多个分片.这样客户端就不必担心提供"分片"参数了. (7认同)
  • DistributedSearch是否可以跨多个不同的内核工作?我自己没试过,但我想知道如果核心A有字段"名称"和"标题"而核心B有字段"名称"和"摘要",那么它们是否会不满意,因此它们不匹配?或者你会在适当的时候取回姓名,摘要和头衔吗? (4认同)
  • 因此,如果我的Core0包含字段documentId,fieldA,fieldB和Core1,其字段为documentId,fieldC,fieldD.然后我创建另一个核心,让我们说Core3与字段documentId,fieldA,fieldB,fieldC,fieldD.我永远不会将数据导入这个核心?然后创建一个包含shard参数的查询处理程序.因此,当我查询Core3时,它永远不会真正包含索引数据,但是由于分片搜索它会将结果从另一个获取到核心,并在第三个核心上"呈现"它?谢谢您的帮助! (4认同)

Mat*_*son 19

无法跨多个核心执行单个查询.另一个答案中提到的分布式搜索与分片相关,分片是跨系统分割索引的.

实际上,多个内核实际上用于在每个内核中存储单独的和不同的结构,并且查询多个内核应该没有意义.正如一些人在之前的评论中提到的那样,你可以有一个额外的核心来保存你的所有字段 - 尽管你可能需要重命名这个新核心中的字段,以便可以存储类似命名但不同类型的字段.