欢迎投稿

今日深度:

solr 的 omitNorms,

solr 的 omitNorms,


omitNorms

Use omitNorms wherever it makes sense. Norms allow for index time boosts and field length normalization. This allows you to add boosts to fields at index time and makes shorter documents score higher. Just as with omitTf, this may not be useful for short or non full text fields. Norms are stored in the index as a byte value per document per field. When norms are loaded up into an IndexReader, they are loaded into a byte[maxdoc] array for each field – so even if one document out of 400 million has a field, it is still going to load byte[maxdoc] for that field, potentially using a lot of RAM. 

在有意义的地方使用omitNorms。规范允许索引时间提升和字段长度标准化。这允许您在索引时向字段添加提升,并使较短的文档得分更高。与omitTf一样,这对于短或非全文字段可能没有用处。规范作为每个字段每个文档的字节值存储在索引中。当将规范加载到IndexReader中时,它们将被加载到每个字段的字节[maxdoc]数组中-因此,即使4亿份文档中有一个字段,它仍将为该字段加载字节[maxdoc],可能会使用大量RAM。考虑关闭某些字段的规范,特别是当索引中有大量字段时。任何非常短的字段(即不是一个完整的文本字段-ID、名称、关键字等)都是一个很好的候选字段。对于大型索引,您可能需要做出一些艰难的决定,并关闭关键全文字段的规范。作为我们正在讨论的RAM大小的一个例子,一个1000万文档索引中的一个字段将占用不到10 MB的RAM。一百个这样的字段将占用近千兆字节的内存。在向文档中添加字段时,可以省略Lucene规范,也可以通过在Schema.xml文件中使用正确的字段定义来省略Solr规范。

规范以单字节信息的形式存储在每个字段的每个文档的索引中。这将保存应用于字段或长度信息的索引时间提升的信息。

长度信息将允许您将较短的字段提升到更长的字段。

此外,指数时间提升将使一个字段的提升幅度高于另一个字段。因为它占用了空间,所以如果不需要,应该关闭它。

如果没有使用索引时间提升,或者字段是不需要任何长度规范化的短文本字段或非文本字段。

问题:1。为什么默认的lucene/solr行为会将较短的字段长度提升到较高的字段长度?原因是什么?

在更大的字段长度上增加较短的字段长度与确定称为tf-idf的文档相关性的基本概念有关(请参见http://en.wikipedia.org/wiki/tf%e2%80%93idf)。作为一个简短的例子,假设您的搜索返回了两个文档:第一个是100个单词,第二个是1000个单词。每个搜索关键字只包含一次。由于第一个文档中的关键字是文本的1%,因此短文档被认为比长文档更与您的搜索相关,长文档您搜索的关键字仅为文本的0.1%。

2。为什么我不想省略规范?我不需要在这个特定的字段上增加查询,也不需要在这个字段上使用任何方面。

听起来,根据您的需求,您可能想尝试省略规范。但是,这可能会以您不期望的方式扭曲您的搜索结果。可能是因为您一直受益于长度规范化的一些好特性,但没有意识到这一点。另一种方法可能是将文档长度实际存储为某种标记字段,例如将文档标记为“短”、“中”和“长”,然后增强与长或长和中或其他内容匹配的文档。这也将使您的最终用户能够在搜索时根据文档长度进行过滤。

同样,当我提到长度规范化的好特性时,您可能会想到这样的情况:一篇超长文章涉及10个不同的主题,其中1个主题与用户的搜索匹配,或者一篇仅涉及1个主题的长文章存在,被搜索的那个。在这种情况下,您可能更喜欢长文章而不是超长文章(即使超长文章与搜索关键字匹配的次数更多)。它更多地依赖于您的数据和用例。

www.htsjk.Com true http://www.htsjk.com/solr/38013.html NewsArticle solr 的 omitNorms, omitNorms Use omitNorms wherever it makes sense. Norms allow for index time boosts and field length normalization. This allows you to add boosts to fields at index time and makes shorter documents score higher. Just as...
相关文章
    暂无相关文章
评论暂时关闭