目前我在solr中有三个核心,我的要求是搜索所有核心。核心在其字段名称中有相似之处,如下所示,
core1:schema:字段A,字段B,字段C,字段D,字段E
core2:schema:字段A,字段M,字段N,字段D
core3:schema:field X, 场Y,场B,场N
(不要在字段中使用上述模式,这些是为了解释很少 这三个核心领域的相似点和不同点。)
现在要搜索所有这些核心,我已经实现了以下两个解决方案:
我保留了所有三个内核的相同内容并创建了一个内核,并将一个模式从所有三个内核中放入了所有三个模式的联合, 并在solr配置中将参数“shards”与地址相对应 三个核心。基本上这个新创建的核心没有任何 索引数据,当我们搜索这个核心时,它实际上是 将其重定向到三个核心,并将结果归结并返回 我想。 How to Search Multiple SOLR Core?
- 醇>
将所有核心放在一个核心中。在该核心上创建一个模式,该模式是来自所有三个核心的所有三个模式的并集并创建所有字段 optional(required = false),在一个索引中用 附加字段,用于选择要搜索的类型。 https://wiki.apache.org/solr/MultipleIndexes
现在这两种解决方案都能完美运行,但我不确定采用哪种解决方案。所以寻找一个明确的利弊(我知道很少但不是很清楚)来选择更好的。
如果我们在这两个方法的所有地方保持所有设置相同,也想知道在搜索上述两种方法时,得分计算或相关性是否会有任何差异。
答案 0 :(得分:0)
选择上述两种方法之一将取决于将会增长的组合索引大小。如果组合所有三个核心的索引大小预计由单个机器处理,那么最好选择单核方法,否则选择多个核心()。
关于得分,Solr不计算通用术语/ doc频率。您可以参考this confluence链接以获取进一步的参考