命中Lucene中弃用的对象.Net 3.03,我该如何替换它
本文关键字:何替换 替换 Lucene Net 对象 命中 | 更新日期: 2023-09-27 18:00:15
我正在处理lucene,但在Hits对象的这个问题上遇到了麻烦。我有一个使用Lucene。网搜索,但由于某些原因,VS12 Express找不到Hits对象,因此以下内容无法编译。
编译器抱怨这行
Hits hits = searcher.Search(booleanQuery, hits_limit);
带有以下错误消息
错误1找不到类型或命名空间名称"Hits"(您是缺少using指令或程序集引用?)
我不明白,根据在线教程,你需要的是Lucnen。网搜索
任何建议
// validation
if (subqueries.Count == 0) return new List<MATS_Doc>();
// set up lucene searcher
Searcher searcher = new IndexSearcher(_directory, false);
var hits_limit = 1000;
var analyzer = new StandardAnalyzer(Version.LUCENE_30);
BooleanQuery booleanQuery = new BooleanQuery();
foreach (Query fieldQuery in subqueries)
{
booleanQuery.Add(fieldQuery, Occur.SHOULD);
}
//var parser = new QueryParser(Version.LUCENE_30, searchField, analyzer);
//var query = _parseQuery(searchQuery, parser);
Hits hits = searcher.Search(booleanQuery, hits_limit);
IEnumerable<MATS_Doc> results = _mapLuceneSearchResultsToDataList(hits, searcher);
analyzer.Close();
searcher.Dispose();
return results;
我使用Lucene.net 3.0.3,Search()返回一个TopDocs对象,该对象包含一些属性和ScoreDoc元素数组。这里有一个例子:
Lucene.Net.Search.TopDocs results = searcher.Search(booleanQuery, null, hits_limit);
foreach(ScoreDoc scoreDoc in results.ScoreDocs){
// retrieve the document from the 'ScoreDoc' object
Lucene.Net.Documents.Document doc = searcher.Doc(scoreDoc.Doc);
string myFieldValue = doc.get("myField");
}