solr架构中的omitNorms和version字段是什么?

Kam*_*ore 20 lucene solr field

我不知道何时使用omitNorms ="true".我阅读了2-3个链接,但我仍然不清楚其含义.是什么意思"设置为true以省略与此字段关联的规范(这会禁用字段的长度规范化和索引时间提升,并节省一些内存).只需要索引时间提升的全文字段或字段需要规范." 在http://wiki.apache.org/solr/SchemaXml页面

Jay*_*dra 27

规范作为单字节信息存储在每个字段的每个文档的索引中.这将保存应用于字段或长度信息的索引时间提升的信息.
长度信息将允许您在更长的字段中增加更短的字段.
此外,索引时间提升将允许一个字段提升高于其他字段.

由于它占用空间,如果不需要它应该关闭.
如果未使用索引时间提升,或者字段是短文本字段或不需要任何长度规范化的非文本字段.

你可以在这里找到一些详细的解释.

当规范被加载到IndexReader中时,它们被加载到每个字段的byte [maxdoc]数组中 - 所以即使4亿个中的一个文档有一个字段,它仍然会为该字段加载byte [maxdoc],可能使用大量的RAM.


作为我们谈论的RAM数量的一个例子,1000万个doc索引中的一个字段将占用不到10 MB的RAM.一百个这样的字段将占用近千兆字节的RAM.

  • 由于规范占用的空间在大多数情况下都是微不足道的,我不同意如果不需要它应该关闭.我更倾向于:它应该保留,除非它出现问题.如果您被迫优化功能以支持性能,那很好,但除此之外,即使您没有使用索引时间提升,默认情况下也应该使用长度规范来获得全文搜索的最佳评分. (3认同)