我正在使用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);

性能不是很有效,但是如果您的语料库很小,它将可以完成工作。

10-06 11:15