Sto lavorando a lucene e sono stato smembrato su questo problema con l'oggetto Hits. Ho un utilizzo di Lucene.Net.Search ma per qualche ragione il VS12 Express non riesce a trovare l'oggetto Hits così non riesce a compilare quanto segue.Hits Object Deprecated in Lucene.Net 3.03, come posso sostituirlo?
Il compilatore si lamenta su questa linea
Hits hits = searcher.Search(booleanQuery, hits_limit);
con il seguente messaggio di errore
di errore 1 Il tipo o dello spazio dei nomi il nome 'Hits' non è stato trovato (sei tu manca una direttiva con o un riferimento all'assemblaggio?)
Non capisco, secondo l'alchino delle esercitazioni online di cui hai bisogno è Lucnen.Ne t.Search
Qualsiasi Consigli
// 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;
Grazie! c'è comunque la possibilità di riportare tutto il documento in un colpo invece che campo per campo? – TheCodeNovice
la riga ** Lucene.Net.Documents.Document doc = searcher.Doc (scoreDoc.Doc); ** recupera l'intero documento. Quindi puoi accedere ai suoi campi proprio come ho fatto nel mio esempio, o iterare attraverso di loro usando qualcosa come ** foreach (Lucene.Net.Documents.Field f in doc.GetFields()) {Console.WriteLine ("field =" + f.Name + ", value =" + f.StringValue)} ** – mbarthelemy
perfetto! grazie ancora – TheCodeNovice