Lucene.Net 1.4.3.3用WildcardTermEnum实现自动补全遇空引用异常
Lucene 1.4.3.3 索引读取空引用异常解决
我们需要读取Lucene索引,实现用户输入搜索表达式时列出匹配的索引词条——例如输入“bas”时,展示所有以“bas”开头的索引词条。当前使用的Lucene.dll版本为1.4.3.3,因系统老旧无法升级至新版本。
以下代码运行时,最后一行抛出异常:应用程序中的服务器错误。未将对象引用设置到对象的实例。
Dim index_reader as Lucene.Net.Index.IndexReader dim test_term as Lucene.Net.index.Term index_reader.open("C:\inetpub\fulltextindex" ) test_term = new Lucene.Net.index.Term ("BAT:", "bas*" ) Dim results As Lucene.Net.Search.WildcardTermEnum results = new Lucene.Net.Search.WildcardTermEnum(index_reader, test_term )
但以下索引访问方式可正常工作:
query_text = "BAT:world" ' Request.QueryString("query") query = Lucene.Net.QueryParsers.Queryparser.Parse(query_text, "contents", analyzer) hits = searcher.Search(query) Response.Write(query_text & ": " & hits.Length.ToString())
问题已解决
错误的索引打开方式(无错误提示,但实际未成功打开索引):
index_reader.open("C:\inetpub\fulltextindex" )
正确的索引打开方式,修改后所有功能恢复正常:
index_reader = index_reader.open("C:\inetpub\fulltextindex" )
内容的提问来源于stack exchange,提问作者AndyH
相关产品推荐
相关产品推荐

