Lucene.NET计分精确匹配为100,不完全匹配为100以下

时间:2019-05-17 17:58:11

标签: lucene.net scoring

希望在我深入了解Lucene的自定义评分之前,能得到一个简单的答案。

我正在使用Lucene.NET v4.8.0-beta00005。

现在我正在使用StandardAnalyzer进行索引,因此我想它不会对术语进行任何转换,只是删除了停用词。

搜索时,我使用相同的StandardAnalyzer解析搜索文本,并为每个词条组成BooleanQuery的OR FuzzyQuery组合。

我们有一个要求,即完全匹配的得分为100。完全匹配是查询中的所有术语与索引中的所有术语完全匹配(以任何顺序)。
对于不完全匹配的得分,我们没有严格的要求,但得分必须低于100。

在我们现有的使用SQL Server全文搜索的实现中,我们有一个简单的自定义评分算法,该算法将搜索查询中的关键字与每个匹配项的关键字进行比较,并基于匹配的关键字中所有匹配关键字的百分比文档,并根据keword长度进行加权,即可计算出分数。 因此,当文档中的所有单词完全匹配(以任何顺序)与查询中的单词匹配时,匹配得分为100。

在Lucene.NET中,有BooleanQuery的{​​{1}}达到类似行为的简便方法吗?

0 个答案:

没有答案