如何更改Lucene的评分并使用向量空间模型代替BM25?
答案 0 :(得分:1)
您可以通过使用IndexWriterConfig.setSimilarity和IndexSearcher.setSimilarity设置“相似度”来更改用于对文档评分的算法。请注意,在编写和搜索时,您应该使用相同的相似性实现,并且通常需要在任何时候尝试尝试不同的相似性时都重新索引。
许多Similarity implementations可用。
Lucene的旧默认相似性是ClassicSimilarity,它是TFIDF(即VSM)实现,documented here。
但是,它不会根据您的评论完成您要查找的内容。它也不会为您提供有意义的方式来标准化分数或建立有用的阈值,并且分数没有上限。
答案 1 :(得分:0)
要使用其他相似性,请使用以下方法在indexSearcher
中设置相似性:
IndexSearcher indexSearcher;
IndexReader reader = DirectoryReader.open(indexDirectory);
indexSearcher = new IndexSearcher(reader);
...
indexSearcher.setSimilarity(new BM25Similarity()); //default in newer versions and above
//or
indexSearcher.setSimilarity(new ClassicSimilarity());
//or any other similarity