Lucene比较文档内容

时间:2014-06-23 13:50:19

标签: solr lucene compare documents nosql

我正在尝试使用solr比较文档的内容。我只需将整个文档内容用作query即可。这有效,直到文档变大。一个文档可以包含多达15k字或更多。这导致最大boolean子句异常,其默认值为1024.现在我当然可以增加此值,但即使我将其增加到5k,仍然无法比较具有大内容的文档。 / p>

Lucene是否适合此类任务?如果是这样,我该怎么做才能达到上述要求。如果没有,那么将一个文档的内容与其他文档进行比较的替代方法是什么?

1 个答案:

答案 0 :(得分:0)

我认为MoreLikeThisMoreLikeThis将文档内容修剪为更高频率的条款,然后只搜索那些可以解决大量术语(并提高性能)的文档内容。如果您要搜索类似于外部来源的文档:

MoreLikeThis mlt = new MoreLikeThis(indexreader);
Query query = mlt.like(someReader, "contents");
Hits hits = indexsearcher.search(query);

或者,如果搜索索引中已有的文档:

MoreLikeThis mlt = new MoreLikeThis(indexreader);
Query query = mlt.like(documentNumber);
Hits hits = indexsearcher.search(query);

Solr还包含MoreLikeThis handler