SOLR架构设计问题:字段缺席还是布尔字段?

时间:2010-01-29 19:29:18

标签: schema solr schema-design

我需要将我的SOLR索引分成两半。事实证明,我已经有一个STRING字段,代表我需要的分区信息。意思是,将要搜索的一种记录是字符串字段存在于记录中并包含值的位置,另一种是不包含值的位置。所有查询都必须指定要搜索的分区。现在使用负字段查询(例如-strFld:[* TO *])搜索该字段会更快或者我创建一个新的布尔字段会更好/更快,称之为“hasStrFld”,并搜索该字段?因此,当strFld不存在时,hasStrFld为false。同样,当StrFld中有数据时,hasStrFld为真。

其他注意事项:将来索引可能被划分为第三个分区的可能性非常低,使得布尔值不合适且负面查询不合适,并且将具有枚举值的字段作为考虑因素。然而,可能性相当低,今天的快速性能比明天的可扩展性要大得多。

1 个答案:

答案 0 :(得分:3)

我认为在实践中我可能会考虑在决定之前运行一些测试,但是,如果没有它们,我很可能会使用STRING字段。

  • 它已经存在
  • 没有特殊的布尔字段( Solr 根据我的理解使用字符串标记添加它)。

速度我会尝试:

  • 使用它作为过滤器(即fq)来利用相关的缓存机制
  • 提升/取消提升字段得分并排序(而不是完全分区)
  • 一种多核方法,核心分区(实际上这很容易扩展,易于维护)

希望这有帮助。