我有这样的数据可用性,很少有数据存储在数据库中,其他数据作为pdf / word / excel文件上传到文件服务器中。 如果我想索引以上所有内容,Lucene索引应该如何?表格和文件的索引应该不同吗?这样搜索字符串就会沿着索引搜索,或者组合成一个具有各种字段结构的索引(lucene是否支持这个?)?
感谢 V
答案 0 :(得分:0)
如果您不想在文档之间有所区别,可以使用一个索引。你可以使用filesysteminfo通过文件夹的结构。使用filesysteminfo,您可以检查它是文件夹还是文档,如果是文档,则将其编入索引,如果不是,则再次调用该函数。
Dim filesysteminfo As FileSystemInfo
Dim FSIs As FileSystemInfo() = New DirectoryInfo(yourfolderroot).GetFileSystemInfos
For Each filesysteminfo In FSIs
If TypeOf filesysteminfo Is DirectoryInfo Then
function_create_document(filesysteminfo.FullName, indexwriter, id)
Else
Dim dynamic_doc As New Document()
Dim sr As System.IO.StreamReader = New StreamReader(filesysteminfo.FullName)
Dim filename As String = filesysteminfo.Name
...
如果您想要有所作为,可以检查是从数据库还是从文件服务器获取文档。 只需将您的信息存储在一个字段中即可。
如果您的文档来自数据库,那么使用stringvariable(yourstring)你的字符串是“database”,否则就是“fileserver”
Dim field_typ As Field = New Field("doc_typ", yourstring, Field.Store.YES, Field.Index.TOKENIZED)