如何在SOLR中搜索多个索引

时间:2016-12-08 12:41:56

标签: solr

目前我在solr中有三个核心,我的要求是搜索所有核心。核心在其字段名称中有相似之处,如下所示,

  

core1:schema:字段A,字段B,字段C,字段D,字段E

     

core2:schema:字段A,字段M,字段N,字段D

     

core3:schema:field X,   场Y,场B,场N

     

(不要在字段中使用上述模式,这些是为了解释很少   这三个核心领域的相似点和不同点。

现在要搜索所有这些核心,我已经实现了以下两个解决方案:

  
      
  1. 我保留了所有三个内核的相同内容并创建了一个内核,并将一个模式从所有三个内核中放入了所有三个模式的联合,   并在solr配置中将参数“shards”与地址相对应   三个核心。基本上这个新创建的核心没有任何   索引数据,当我们搜索这个核心时,它实际上是   将其重定向到三个核心,并将结果归结并返回   我想。   How to Search Multiple SOLR Core?

  2.   
  3. 将所有核心放在一个核心中。在该核心上创建一个模式,该模式是来自所有三个核心的所有三个模式的并集并创建所有字段   optional(required = false),在一个索引中用   附加字段,用于选择要搜索的类型。   https://wiki.apache.org/solr/MultipleIndexes

  4.   

现在这两种解决方案都能完美运行,但我不确定采用哪种解决方案。所以寻找一个明确的利弊(我知道很少但不是很清楚)来选择更好的。

如果我们在这两个方法的所有地方保持所有设置相同,也想知道在搜索上述两种方法时,得分计算或相关性是否会有任何差异。

1 个答案:

答案 0 :(得分:0)

选择上述两种方法之一将取决于将会增长的组合索引大小。如果组合所有三个核心的索引大小预计由单个机器处理,那么最好选择单核方法,否则选择多个核心()。

关于得分,Solr不计算通用术语/ doc频率。您可以参考this confluence链接以获取进一步的参考