Lucene.Net MoreLikeThis在查询中返回0个有趣的术语和没有子句

时间:2013-09-23 09:21:46

标签: asp.net search lucene.net morelikethis

我正在尝试实现Lucene.Net MoreLikeThis查询,但它似乎无法在文档中找到任何有趣的内容来搜索索引。

在我的场景中,用户点击了搜索结果网页上的“更像这个”链接,这会在查询字符串上传递文档ID。我的Lucene.Net代码如下所示:

var similarSearch = new MoreLikeThis(reader);
similarSearch.SetFieldNames(new[] { "Place", "Subject", "Description", "Name", "Town", "Occupation" });
similarSearch.MinWordLen = 3;
similarSearch.Boost = true;

var terms = similarSearch.RetrieveInterestingTerms(docid);
var doc = reader[docid];

var searchQuery = similarSearch.Like(docid);

执行后; terms变量是一个空数组,doc变量包含文档,searchQuery没有子句。当我使用查询运行搜索时,它不返回任何文档。

我的结论是我能够从读者那里获取文档,但是MoreLikeThis对象无法找到任何构建查询的内容。

知道为什么吗?

1 个答案:

答案 0 :(得分:3)

我认为您可能需要在MoreLikeThis对象上设置以下一个或多个参数:Analyzer,MinTermFreq和/或MinDocFreq

我遇到了同样的问题 - 没有返回任何结果。一旦我设置了上述参数(尝试将两个最小值设置为1),它就可以工作。