Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search Solr:长度规范化/省略规范=false有什么好处?_Search_Lucene_Solr_Full Text Search_Solrnet - Fatal编程技术网

Search Solr:长度规范化/省略规范=false有什么好处?

Search Solr:长度规范化/省略规范=false有什么好处?,search,lucene,solr,full-text-search,solrnet,Search,Lucene,Solr,Full Text Search,Solrnet,我们使用Solr搜索不同长度的文章。我们为描述性元数据(标题、作者、类别、关键字等)和全文编制索引。我们不会在索引时提升相关性——所有提升都是在查询时完成的(我们使用Demax,再加上各种qf、pf和bf提升) 目前,我们的全文字段使用标准值=false;因此,所有其他相同的、较短的文章(2-3列英寸的文章)通常比较长的专题文章(多页)具有更高的相关性 在我们的例子中,文章长度是相关性的一个重要指标,因此我考虑在全文字段中设置omitNorms=true 问题:1。为什么默认的lucene/so

我们使用Solr搜索不同长度的文章。我们为描述性元数据(标题、作者、类别、关键字等)和全文编制索引。我们不会在索引时提升相关性——所有提升都是在查询时完成的(我们使用Demax,再加上各种qf、pf和bf提升)

目前,我们的全文字段使用标准值=false;因此,所有其他相同的、较短的文章(2-3列英寸的文章)通常比较长的专题文章(多页)具有更高的相关性

在我们的例子中,文章长度是相关性的一个重要指标,因此我考虑在全文字段中设置omitNorms=true

问题:1。为什么默认的lucene/solr行为会在更高的范围内增加更短的字段长度?原因是什么? 2.为什么我不想忽略规范?我不需要在这个特定的字段上增加查询,也不需要在这个字段上使用任何类型的刻面。

问题1:

在较高字段长度上增加较短字段长度与确定文档相关性的基本概念TF-IDF有关(请参阅)。作为一个简短的例子,考虑您的搜索返回两个文档:第一个是100个单词,第二个是1000个单词。每个都只包含一次搜索关键字。由于第一个文档中的关键字占文本的1%,因此短文档比长文档更适合您的搜索,其中您搜索的关键字仅占文本的0.1%

问题2:

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


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

迈克,谢谢你。这听起来像我之前想的——很高兴得到证实。