我创建了一个网站,但我遇到了问题。 我想建立一次一个索引并使用它。
目前我有两个功能“创建一个文档存储到目录中”和“搜索”
当用户提交时:
sub submit ()
create_doc()
search(text)
end sub
这有效,但是当我尝试这个时:
create_doc()
sub submit()
search(text)
end sub
就像目录已被删除。
global:
Dim analyzer As StandardAnalyzer = New StandardAnalyzer()Dim directory As Directory = FSDirectory.GetDirectory("C:\[...]luceneindex", True)
Dim indexwriter As IndexWriter = New IndexWriter(directory, analyzer, True)
Sub create_doc()
Dim meindoc As New Document()
im feldbodytext As Field = New Field("bodytext", textstring[...]
meindoc.Add(feldbodytext)
indexwriter.AddDocument(meindoc)
indexwriter.Close()
end sub
Sub lucene_search(ByVal strSuchbegriff As String)
Dim parser As QueryParser = New QueryParser("bodytext", analyzer)
Dim query As Query = parser.Parse(strSuchbegriff)
Dim hits As Hits = searcher.Search(query)
[...]
end sub
是否有可能永久存储索引? 可能会出现问题。索引作家gloabel,但关闭它本地?
答案 0 :(得分:4)
我认为你的问题是每次声明你的IndexWriter
时,都会重新创建索引并删除索引的内容 - 这是因为第3个参数被传递给构造函数({{ 1}}):
True
您应该使用Dim indexwriter As IndexWriter = New IndexWriter(directory, analyzer, True)
来表示索引的现有内容应保持不变:
False
答案 1 :(得分:0)
啊,我想我已经得到了它; - )
我第一次创建索引时必须使用
Dim directory As Directory = FSDirectory.GetDirectory("C:\[...]\luceneindex", True)
Dim indexwriter As IndexWriter = New IndexWriter("C:\[...]luceneindex", analyzer, True)
并且在索引之后我必须同时使用“False”。
真的每次都会创建一个索引吗? 谢谢=)