2017-04-23 1 views
0

그래서 lucene (Java)에 의해 작성된 색인이 있습니다. 내가lucene 색인에서 필드 내용을 읽을 수 없습니다.

TopDocs result = searcher.search(query, maxResults); 
for (ScoreDoc scoreDoc : result.scoreDocs) { 
    Document doc = searcher.doc(scoreDoc.doc); 
    LogService.logger().warning("Title| " + doc.get("title")); 
    LogService.logger().warning("URL| " + doc.get("url")); 

을 다음과 같이 색인을 검색하려고 코드는 제목 필드에 URL 필드 만 인쇄 null를 인쇄합니다.

내 첫 번째 추측은 필드 이름에 문제가 있거나 콘텐츠가 실제로 null이라는 것입니다.

그러나 Lucene Luke (GUI 기반 검사 도구)을 사용하여 두 번 확인했는데 필드 이름이 정상인 것 같습니다. 내용은 분명히 null이 아닙니다.

그 이유는 무엇인지 모르겠습니다. 제안 사항이 있습니까?

PS : 인덱싱 및 검색이 같은 루씬 버전 (6.2.1)

+0

당신이 검색 요청 필드의 목록을 지정하고 있습니까? –

+0

@DarshanMehta 전혀 표시되지 않음 –

+0

표시 할 수있는 색인 생성 코드의 관련 부분이 있습니까? –

답변

0

음을 사용하여 수행, 당신은 확인하기 위해 충분한 정보를 제공하지 않았지만 나는 그 필드 ISN을 내기 것 모두 ' 저장되지 않습니다. 예를 들어 TextField을 사용하고 Reader 또는 TokenStream을 소스로 사용하는 경우 필드는 저장되지 않고 검색 할 수 있지만 검색 할 수는 없습니다.

당신은 텍스트 필드가 같은 저장 할 수 있습니다

:

Field titleField = new TextField("title", "The Sun Also Rises", Field.Store.YES); 
관련 문제