我正在使用 Lucene 来索引我网站的内容并提供搜索工具。我还使用 Lucene 的 MoreLikeThis 为该站点生成“相关页面”工具。我的网站是多语言的,所以我需要一次将 MoreLikeThis 限制为一种特定的语言。
任何人都知道如何做到这一点?
我正在使用 Lucene 来索引我网站的内容并提供搜索工具。我还使用 Lucene 的 MoreLikeThis 为该站点生成“相关页面”工具。我的网站是多语言的,所以我需要一次将 MoreLikeThis 限制为一种特定的语言。
任何人都知道如何做到这一点?
我最终只是拆分为多个索引,然后执行 MLT 查询。否则请求太重了。我希望 Lucene 开发人员会
MoreLikeThis返回一个 Query 对象。
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);