Lucene评分:TermQuery w&;不带术语向量

Lucene评分:TermQuery w&;不带术语向量,lucene,scoring,Lucene,Scoring,当TermVector/positions/Offset打开时,TermQuery:ExtractTerms是否会导致更高的计数?(假设匹配发生次数超过1次)。相反,关闭反转文件信息后,ExtractTerms是否始终返回1且仅返回1个术语 编辑:在模式中启用术语向量如何以及在何处影响评分?TermQuery.ExtractTerms提取查询中的术语,而不是结果。因此,搜索“foo:bar”总是只返回一个术语,而不管索引中有什么 在我看来,您似乎想了解,而不是Query.ExtractTerms

当TermVector/positions/Offset打开时,TermQuery:ExtractTerms是否会导致更高的计数?(假设匹配发生次数超过1次)。相反,关闭反转文件信息后,ExtractTerms是否始终返回1且仅返回1个术语


编辑:在模式中启用术语向量如何以及在何处影响评分?

TermQuery.ExtractTerms
提取查询中的术语,而不是结果。因此,搜索“foo:bar”总是只返回一个术语,而不管索引中有什么

在我看来,您似乎想了解,而不是
Query.ExtractTerms

编辑:根据您的评论,您似乎在问:“术语向量对评分有何影响?”答案是:没有。术语频率、范数等是在索引时计算的,因此存储什么并不重要

主要的例外是带有slop的
PhraseQuery
,它使用术语positions。一个小的例外是,自定义评分类可以使用他们想要的任何数据,因此不仅术语向量,而且有效载荷等都可能影响评分


如果您只是执行
TermQuery
s,那么您存储的内容应该没有任何效果。

TermQuery.ExtractTerms
提取查询中的术语,而不是结果。因此,搜索“foo:bar”总是只返回一个术语,而不管索引中有什么

在我看来,您似乎想了解,而不是
Query.ExtractTerms

编辑:根据您的评论,您似乎在问:“术语向量对评分有何影响?”答案是:没有。术语频率、范数等是在索引时计算的,因此存储什么并不重要

主要的例外是带有slop的
PhraseQuery
,它使用术语positions。一个小的例外是,自定义评分类可以使用他们想要的任何数据,因此不仅术语向量,而且有效载荷等都可能影响评分


如果您只是执行
TermQuery
s,那么您存储的内容应该没有任何影响。

Thx Xodarap。但我不想突出显示。谢谢我最想知道的是TermVector的开启和关闭对得分的影响,而不是性能或突出显示。我找不到根据位置得分的参考资料;文献中通常称为“首次出现”评分;这将要求inv索引具有位置信息。和邻近搜索一样。@willemIP:我已经更新了我的答案,以反映我认为你在问什么。@Xodorap:那么默认情况下没有第一次出现得分了?而且也没有接近?好的,但它确实影响得分。我有一个可复制的案例。现在我必须决定这是索引时间更改还是查询时间;索引和查询都会影响评分。从搜索字段中简单地包含/排除术语向量,是哪一个导致了我的相关性数字发生了根本性变化?@willemIP:有关评分的工作原理,请参阅。这将取决于您正在执行的查询类型,因此您可能希望粘贴一个代码示例。我尝试/测试/和标准化(按/和行业内指标)的相关性测试显示出显著的差异。对于所有测量的查询类型(>=3个查询类型)。我相信还有更多的问题要问。顺便说一句,我希望你们能继续参与我认为有意义的领域:PCA和LDA方法不赞成编码到一个字节,因为在追求内存占用的过程中,丢失是可以的。Lucene应该努力使其识别更加精确,而不是更加模糊。但我不想突出显示。谢谢我最想知道的是TermVector的开启和关闭对得分的影响,而不是性能或突出显示。我找不到根据位置得分的参考资料;文献中通常称为“首次出现”评分;这将要求inv索引具有位置信息。和邻近搜索一样。@willemIP:我已经更新了我的答案,以反映我认为你在问什么。@Xodorap:那么默认情况下没有第一次出现得分了?而且也没有接近?好的,但它确实影响得分。我有一个可复制的案例。现在我必须决定这是索引时间更改还是查询时间;索引和查询都会影响评分。从搜索字段中简单地包含/排除术语向量,是哪一个导致了我的相关性数字发生了根本性变化?@willemIP:有关评分的工作原理,请参阅。这将取决于您正在执行的查询类型,因此您可能希望粘贴一个代码示例。我尝试/测试/和标准化(按/和行业内指标)的相关性测试显示出显著的差异。对于所有测量的查询类型(>=3个查询类型)。我相信还有更多的问题要问。顺便说一句,我希望你们能继续参与我认为有意义的领域:PCA和LDA方法不赞成编码到一个字节,因为在追求内存占用的过程中,丢失是可以的。Lucene应该努力使其区分更加精确,而不是更加模糊。