限制MoreLike这是Lucene的一部分我的文件

时间:2012-11-25 07:33:47

标签: java search lucene morelikethis

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

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

2 个答案:

答案 0 :(得分: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);

性能不是很高,但如果你有一个小的语料库,它将完成工作。

答案 1 :(得分:0)

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