2011-01-17 13 views
1

私はこのようなデータの可用性を持っていますが、データベースに格納されるデータはほとんどなく、その他はpdf/word/excel文書としてファイルサーバーにアップロードされます。 上記のすべてのインデックスを作成するには、Luceneインデックスをどのように設定する必要がありますか?テーブルとドキュメントのインデックスが異なる必要がありますか?検索文字列が索引に沿って検索されるか、または様々なフィールド構造を持つ単一の索引に結合されるようになります(luceneはこれをサポートしていますか?)。Lucene複数の文書の索引付け

おかげ V

+0

であるあなたは、データベース内の文書との間で異なるようにしたいですファイルサーバー上のドキュメント? – Tyzak

+0

はい、違いはありますが、データベースにはほとんどフィールドが含まれていませんが、ドキュメントのテキスト(pdf/word)はそのままインデックスになります。 –

+0

もし私があなたが1つのインデックスを使用して、それらの2つのタイプのドキュメントをフィールドで分離することができれば(答えの中で私が書いたように)。ドキュメントのインデックスの場所を確認できます。それに応じてフィールドを塗りつぶすことができます。アプリケーションの後半では、フィールドを確認し、使用するインデックスのドキュメントのみを使用できます。 – Tyzak

答えて

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 


          ... 

差をつける場合は、データベースまたはファイルサーバーからドキュメントを取得するかどうかを確認できます。 情報をフィールドに保存するだけです。

あなたの文書がデータベースyoutは、文字列からのものである場合stringvariable(yourstring)を使用するには、「データベース」他でそれが「ファイルサーバ」

Dim field_typ As Field = New Field("doc_typ", yourstring, Field.Store.YES, Field.Index.TOKENIZED) 
関連する問題