1

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

在我的场景中,用户点击了搜索结果网页上的“More Like This”链接,这会在查询字符串上传递文档 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 对象无法找到任何东西来构建查询。

知道为什么吗?

4

1 回答 1

3

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

我有同样的问题 - 没有返回结果。一旦我设置了上述参数(尝试将两个最小值都设置为 1),它就起作用了。

于 2013-12-06T08:38:41.207 回答