2017-04-23 74 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爲標題字段。

我的第一個猜測是,字段名稱可能存在問題,或者內容實際上是空的。

不過我是雙Lucene的Luke(基於GUI的檢測工具)和字段名檢查似乎是確定,內容絕對不是null

我不知道可能是什麼原因..任何建議?

PS:索引和搜索使用相同的lucene版本(6.2.1)

+0

你指定的搜索請求字段的任何名單? –

+0

@DarshanMehta根本沒有 –

+0

你能不能展示索引代碼的相關部分? –

回答

0

性能佳,你沒有提供足夠的信息來確定,但我敢打賭那場ISN」存儲。例如,如果您使用的是TextField,並且使用ReaderTokenStream作爲源,則該字段將不會被存儲,並且可以被搜索,但是您將無法檢索該字段。

你可以做一個文本字段存儲的,如:

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