Lucene搜索结果的相关性

时间:2009-08-06 18:18:02

标签: .net lucene lucene.net

我在Lucene索引中关注了3份文件。

  1. 作为MBA,您将在实施业务战略中发挥不可或缺的作用,并将负责法定账目,合规性,审计,包括银行关系,税务,财务和财务。现金管理

  2. 作为M.B.A.,您将在实施业务战略中发挥不可或缺的作用,并将负责法定账目,合规,审计,包括银行关系,税务,财务和财务。现金管理

  3. 作为工商管理硕士,您将在实施业务战略中发挥不可或缺的作用,并将负责法定账目,合规,审计,包括银行关系,税务,财务和财务。现金管理

  4. 我的搜索输入是:MBA和我在Lucene上执行的查询是:

    +((description:mba^3.0) (description:m.b.a.) (description:\"master business administration\"))
    

    按结果按降序排序后,我按以下顺序得到结果:

    Document # 3
    Document # 2
    Document # 1
    

    记录#1不应该在搜索结果之上,因为我已经给它一个更高的提升,而且该文档包含确切的单词MBA ??

    我在这里缺少什么?

    感谢。

2 个答案:

答案 0 :(得分:3)

匹配的查询字符串占Doc#3内容的10%左右。但只占#1和#2的一小部分。

您可能需要调整提升以反映备用查询字符串的不同长度。

答案 1 :(得分:0)

如果您使用的是Lucene的StandardAnalyzer,那么文档#1和#2实际上是等效的,两者都匹配术语“mba”。很难猜到为什么#3得分最高 - 也许是因为它匹配多个术语。您可能需要考虑在索引时处理这样的同义词。

我不认为字段长度是一个很大的因素,但您可能想要做的是使用IndexSearcher.Explain()来获得评分细分 - 这是调试此类问题的最佳方法。