代码之家  ›  专栏  ›  技术社区  ›  Julien

为什么Lucene精确匹配只得到0.4分?

  •  1
  • Julien  · 技术社区  · 17 年前

    我有一个包含标题和说明的文档。其中一个商品说明包含“亚马逊Prime免费送货”等字样。

    我使用perl-lucene在标题和描述字段上搜索“Amazon Prime免费送货”

    my $analyzer = new Lucene::Analysis::SimpleAnalyzer();
    my @fields = ('title', 'description');
    my $parser = new Lucene::MultiFieldQueryParser(\@fields, $analyzer);
    

    我的分数只有0.4分。我的猜测是,我得到0的标题(没有匹配),0.8的描述(完全匹配),平均0.4。

    1 回复  |  直到 17 年前
        1
  •  4
  •   pablisco    13 年前

    首先,你需要看一些 Lucene scoring theory . 下一个 explain() 解释查询如何获得分数。我相信冥王星也有解释。第三,为什么分数必须是0.8或更多?Lucene分数是相对的,并且在特定查询的上下文中有效。它们的主要用途是订购点击量。除非你出于其他目的需要分数,而且只要相对顺序保持不变,我就不在乎绝对分数。