0

データベース検索用の lucene 3.6.2 検索エンジンを実装するデスクトップ アプリケーションがあります。データベースには、日付と文字の両方のデータ型を持つ列が含まれています。一部の列には、null フィールドを含めることもできます。Datetools は、Lucene による分析のために Date を String に変換するためにも使用されます。しかし、Lucene が分析のために日付列からドキュメント コンテナに null フィールドを追加できない場合のように見えます。

以下にコード スニペットを示します。

 doc = new Document();


         if(rs.getDate("DATE_OF_LETTER")== null)
         { doc.add(new Field("date_of_letter","",Field.Store.YES,Field.Index.ANALYZED)); }
         else {
        doc.add(new Field("date_of_letter",DateTools.dateToString(rs.getDate("DATE_OF_LETTER"),
                DateTools.Resolution.DAY),Field.Store.YES,Field.Index.ANALYZED)); 
         }       

        if(rs.getDate("DATE_RECEIVED")== null)
         { doc.add(new Field("date_received","",Field.Store.YES,Field.Index.ANALYZED)); }
        else {
          doc.add(new Field("date_received",DateTools.dateToString(rs.getDate("DATE_RECEIVED"),
                DateTools.Resolution.DAY),Field.Store.YES,Field.Index.ANALYZED));  
        }      

         if(rs.getString("REMARKS")== null)
         { doc.add(new Field("remarks","",Field.Store.YES,Field.Index.ANALYZED)); }
         else {
         doc.add(new Field("remarks",rs.getString("REMARKS"),Field.Store.YES,Field.Index.ANALYZED));  }

          if(rs.getDate("DATE_DISPATCHED")== null)
         { doc.add(new Field("date_dispatched","",Field.Store.YES,Field.Index.ANALYZED)); }
         else {
        doc.add(new Field("date_dispatched",DateTools.dateToString(rs.getDate("DATE_DISPATCHED"),
                DateTools.Resolution.MINUTE),Field.Store.YES,Field.Index.ANALYZED)); 

                }     
           }
         iw.addDocument(doc);
         }



   }   

なにか提案を。

4

1 に答える 1