lucene vs sql结果评分

lucene vs sql结果评分,sql,lucene,full-text-search,lucene.net,sql-server-2012,Sql,Lucene,Full Text Search,Lucene.net,Sql Server 2012,根据以下查询,我发现SQL和Lucene之间的排名/得分差异很大: [伪代码](在解释*的3范围内的状态*)和矛盾 我认为这不是解析器的问题,因为所有结果似乎都符合查询要求。然而,在前1000个结果中,我只得到172个常见结果。由于Lucene和SQL的所有结果似乎都符合查询要求,所以我唯一剩下的猜测是,评分在某种程度上是完全不同的。我很难找到任何关于SQL如何处理评分的信息,也很难找到比较SQL和Lucene评分的信息。我不一定期望两个引擎得到相同的结果集,但我期望超过10%的相似性,我需要至

根据以下查询,我发现SQL和Lucene之间的排名/得分差异很大:

[伪代码](在解释*的3范围内的状态*)和矛盾

我认为这不是解析器的问题,因为所有结果似乎都符合查询要求。然而,在前1000个结果中,我只得到172个常见结果。由于Lucene和SQL的所有结果似乎都符合查询要求,所以我唯一剩下的猜测是,评分在某种程度上是完全不同的。我很难找到任何关于SQL如何处理评分的信息,也很难找到比较SQL和Lucene评分的信息。我不一定期望两个引擎得到相同的结果集,但我期望超过10%的相似性,我需要至少能够解释巨大的差异

我如何解释这一重大差异?

来自(我的重点):

SQL Server中的全文搜索可以生成可选的分数(或排名) 值),该值指示 全文查询。此秩值在每一行上计算,可以 用作对给定查询的结果集进行排序的排序条件 根据相关性。秩值仅表示的相对顺序为 结果集中行的相关性实际值为 不重要,通常在每次运行查询时都会有所不同。军衔 值在查询中没有任何意义

也就是说,SQL全文搜索不会对结果产生真正的价值;它相对于结果中其他行的唯一值

与之相比,这完全取决于您对文档的索引方式、文档和/或字段是否增强、过滤器等

Lucene中的评分也是一致的,不像SQL server中没有保证。它甚至反映在名称中,SQL server中全文查询的结果是排名值,而不是分数,就像Lucene中一样


数值不完全可比,但这是可以理解的,因为结果也不相同。

我如何解释这种显著差异?
是什么让你认为两种不同的产品应该使用类似的排名/评分算法?随便用吧。或者开发自己的评分算法并在Lucene.Net中使用(我不认为这很容易)