Lucene 创建一个更相似的查询将生成空查询和术语
我正试图得到另一份类似的文件。我正在使用Lucene.Net来实现这个目标。为此,我将文档分为多个字段-标题和内容。现在,在没有有趣术语的空查询中创建实际查询结果 我的眼睛看起来像这样:Lucene 创建一个更相似的查询将生成空查询和术语,lucene,lucene.net,Lucene,Lucene.net,我正试图得到另一份类似的文件。我正在使用Lucene.Net来实现这个目标。为此,我将文档分为多个字段-标题和内容。现在,在没有有趣术语的空查询中创建实际查询结果 我的眼睛看起来像这样: var queries = new List<Query>(); foreach(var docField in docFields) var similarSearch = new MoreLikeThis(indexReader); similarSearch.SetFieldNam
var queries = new List<Query>();
foreach(var docField in docFields)
var similarSearch = new MoreLikeThis(indexReader);
similarSearch.SetFieldNames(docField.fieldName);
similarSearch.Analyzer = new GermanAnalyzer(Version.LUCENE_30, new HashSet<string>(StopWords));
similarSearch.MinDocFreq = 1;
similarSearch.MinTermFreq = 1;
similarSearch.MinWordLen = 1;
similarSearch.Boost = true;
similarSearch.BoostFactor = boostFactor;
using(var reader = new StringReader(docField.Content)){
var searchQuery = similarSearch.Like(reader);
// debugging purpose
var queryString = searchQuery.ToString(); // empty
var terms = similarSearch.RetrieveInterestingTerms(reader); // also empty
queries.Add(searchQuery);
}
var booleanQuery = new BooleanQuery();
foreach(var moreLikeThisQuery in queries)
{
booleanQuery.Add(moreLikeThisQuery, Occur.SHOULD);
}
var topDocs = indexSearcher.Search(booleanQuery, maxNumberOfResults); // and of course no results obtained
var querys=newlist();
foreach(docFields中的var docField)
var similarSearch=新的MoreLikeThis(indexReader);
similarSearch.setFieldName(docField.fieldName);
similarSearch.Analyzer=新的GermanAnalyzer(Version.LUCENE_30,新的哈希集(StopWords));
similarSearch.MinDocFreq=1;
similarSearch.MinTermFreq=1;
similarSearch.MinWordLen=1;
similarSearch.Boost=true;
similarSearch.BoostFactor=BoostFactor;
使用(var reader=newstringreader(docField.Content)){
var searchQuery=similarSearch.Like(reader);
//调试目的
var queryString=searchQuery.ToString();//为空
var terms=similarSearch.RetrieveInterestingTerms(读取器);//也为空
添加(searchQuery);
}
var booleanQuery=new booleanQuery();
foreach(查询中的var moreLikeThisQuery)
{
booleanQuery.Add(moreLikeThisQuery,occurrent.SHOULD);
}
var topDocs=indexSearcher.Search(booleanQuery,maxNumberOfResults);//当然没有结果
因此,问题是:
为什么没有术语/为什么没有生成查询?
我希望重要的事情被看到,如果没有,请帮助我把我的第一个问题做得更好:)我把它做好了
问题是,我处理的是假目录。
对于创建索引和创建查询,我有不同的解决方案,但与索引位置不匹配
因此,总体解决方案是:
查询生成类是否已完全初始化?(MinDocFreq、MinTermFreq、MinWordLen有一个分析器,设置字段名)
您使用的IndexReader是否正确初始化