2

我正在使用 Lucene 来索引我网站的内容并提供搜索工具。我还使用 Lucene 的 MoreLikeThis 为该站点生成“相关页面”工具。我的网站是多语言的,所以我需要一次将 MoreLikeThis 限制为一种特定的语言。

任何人都知道如何做到这一点?

4

2 回答 2

0

我最终只是拆分为多个索引,然后执行 MLT 查询。否则请求太重了。我希望 Lucene 开发人员会

于 2012-12-12T15:52:57.163 回答
0

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);

于 2012-11-25T22:23:54.343 回答