我正在使用Lucene为我的网站的内容编制索引并提供搜索工具。我还使用Lucene的MoreLikeThis为该站点生成“相关页面”工具。我的网站是多语言的,因此我需要一次将MoreLikeThis限制为一种特定的语言。
有人对如何执行此操作有想法吗?
最佳答案
MoreLikeThis返回查询对象。MoreLikeThis mlt = new MoreLikeThis(ir);
Reader target = ... // orig source of doc you want to find similarities to
Query query = mlt.like( target);
您可以创建第二个查询来检查语言。然后使用可以包装两个查询,您可以创建一个BooleanQuery,如下所示:BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(MoreLikeThisQuery, BooleanClause.Occur.MUST);
booleanQuery.add(languageQuery, BooleanClause.Occur.MUST);
性能不是很有效,但是如果您的语料库很小,它将可以完成工作。