2

Lucene.Net/Lucene と C# の初心者として、数行のコードを記述して検索を実行することができました。

ここで、見つかった領域のスニペットを取得したいと考えています。以下のコードを見つけましたが、Visual Studio は、a) "Searcher には getIndexReader の定義が含まれています" および b) "ScoreDoc には doc の定義が含まれていません" と言い続けています。

助けてくれる人はいますか。

Visual Studio 2010 Express で Lucene.Net 3.0.3 と Lucene Contrib 3.0.3 を使用しています。

以下のコードを参照してください。

ご協力いただきありがとうございます!

RC


IndexReader indexReader = IndexReader.Open(directory, true);
            Searcher indexSearch = new IndexSearcher(indexReader);

            var queryParser = new QueryParser(Version.LUCENE_30, "text", analyzer);
            var query = queryParser.Parse("\"system AKZ\"~10");

            Console.WriteLine("Searching for: " +  query);

            TopDocs hits = indexSearch.Search(query,500);
            /// Highlighter 


            FastVectorHighlighter fvHighlighter = new FastVectorHighlighter(true, true);
            for (int i = 0; i < hits.ScoreDocs.Length; i++)
                {
                    string bestfragment fvHighlighter.GetBestFragment(fvHighlighter.GetFieldQuery(query),indexSearch.getIndexReader(), hits.ScoreDocs[i].doc, "text", 20);
                    MessageBox.Show(bestfragment);
                }

            Console.WriteLine("Results Found: " + hits.TotalHits);
4

3 に答える 3

0

ILSpyのようなものを引き出して、実際にどのような方法が利用できるかを調べます。

于 2012-12-11T02:44:20.717 に答える
0

これは、メソッド名の大文字と小文字の問題です。たとえば、getIndexReader() ではなく GetIndexReader() です。おそらく、これは Java 実装のドキュメントに基づいています。

于 2015-02-04T12:48:59.647 に答える