为什么缺少定义? Lucene.Net 3.0.3 - 快速矢量荧光笔

时间:2012-12-09 22:01:20

标签: lucene.net lucene-highlighter

作为Lucene.Net/Lucene和C#的新手,我能够放置一些代码并运行搜索。

现在我想得到一个已发现区域的片段。我发现下面的代码,但Visual Studio一直告诉我a)“搜索器确实包含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);

3 个答案:

答案 0 :(得分:0)

我会推出像ILSpy这样的东西来检查实际可用的方法。

答案 1 :(得分:0)

这只是方法名称的问题。它的GetIndexReader()例如不是getIndexReader()。您可能基于Java实现的文档。

答案 2 :(得分:0)

在Lucene.net中,此方法的名称为IndexReader。