은 데이터베이스 검색을 위해 lucene 3.6.2 검색 엔진 을 구현하는 데스크톱 응용 프로그램이 있습니다. 데이터베이스에는 날짜 및 문자 데이터 유형이 모두 인 열이 있습니다. 일부 컬럼은 널 (NULL) 필드도 포함 할 수 있습니다. Datetools도 루씬 분석을 위해 String으로 날짜를 변환하는 데 사용됩니다 그러나 루씬 분석을 위해 문서 컨테이너 에 날짜 컬럼에서 널 (null) 필드를 추가 할 수 없습니다 때처럼 보인다.null 필드가있는 Lucene 문서 컨테이너
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);
}
}
어떤 제안 :
나는 아래의 코드 조각을 제시한다.
이후 색인을 검사 할 때 오류가 발생하거나 필드 값이 null입니까? –
조회수가 있지만 lucene이 결과를 반환하지는 않지만 netbeans 콘솔에서 오류가 발생하지 않습니다. 그리고 색인을 검사하려면 어떻게해야합니까? lucene을 처음 사용하십시오 – CodeAngel
색인을 검사 할 수있는 도구가 있습니다 : http://www.getopt.org/luke/ - 도구를보고 필드가 설정되어 있는지 확인하십시오 lucene 지수에서. –