NuGet Package Manager を使用して Lucene.net 2.9.4.1 をダウンロードし、次のコードを使用してテスト インデックスを作成しました。
Dim sysDir As New System.IO.DirectoryInfo(Server.MapPath("~/index"))
Dim indexDir As Store.Directory = Store.FSDirectory.Open(sysDir)
Dim analyzer As Analysis.Analyzer = New Analysis.Standard.StandardAnalyzer(Util.Version.LUCENE_29)
Dim indexWriter As Index.IndexWriter = New Index.IndexWriter(indexDir, analyzer, True, Index.IndexWriter.MaxFieldLength.UNLIMITED)
Dim doc As Documents.Document = New Documents.Document()
Dim fldContent As Documents.Field = New Documents.Field("content", "The quick brown fox jumps over the lazy dog", Documents.Field.Store.YES, Documents.Field.Index.ANALYZED, Documents.Field.TermVector.YES)
doc.Add(fldContent)
indexWriter.AddDocument(doc)
indexWriter.Optimize()
indexWriter.Close()
indexDir.Close()
次に、検索を実行するためのコードを書き始めると、TopDocs クラスの totalHits プロパティにアクセスできません。コードは次のとおりです。
Dim sysDir As New System.IO.DirectoryInfo(Server.MapPath("~/index"))
Dim indexDir As Store.Directory = Store.FSDirectory.Open(sysDir)
Dim searcher As Search.IndexSearcher = New Search.IndexSearcher(indexDir, True)
Dim searchTerm As Index.Term = New Index.Term("content", "fox")
Dim query As Search.Query = New Search.TermQuery(searchTerm)
Dim tdocs As Search.TopDocs = searcher.Search(query, Nothing, 100)
「tdocs」と入力してから次の行にドットを入力すると、GetMaxScore メソッドと SetMaxScore メソッド、および MaxScore プロパティにしかアクセスできません。「totalHits」というプロパティは表示されません。
何か不足していますか?Lucene.net.Search.Hits (廃止されたと言われています) の代わりに Lucene.net.Search.TopDocs を使用しているサンプル コードはありますか?