我正在尝试实现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对象无法找到任何构建查询的内容。
知道为什么吗?
答案 0 :(得分:3)
我认为您可能需要在MoreLikeThis对象上设置以下一个或多个参数:Analyzer,MinTermFreq和/或MinDocFreq
我遇到了同样的问题 - 没有返回任何结果。一旦我设置了上述参数(尝试将两个最小值设置为1),它就可以工作。