5
會有人請解釋在什麼情況下我可以使用Field.Store.NO
代替Field.Store.YES
?我對Lucene非常陌生。我正在嘗試創建一個文檔。根據我的基本知識,我正在做Lucene的Field.Store.YES與Field.Store.NO
doc.add(new StringField(fieldNameA,fieldValueA,Field.Store.YES));
doc.add(new TextField(fieldNameB,fieldValueB,Field.Store.YES));
感謝您的答覆。對於準確性/完整性的考慮:如果我要的背面是documentId,那麼我應該使用'Field.Store.NO':搜索將是一個沒有感受差異進行的,但只有documentId會回來嗎?我也必須顯式指定'fieldType.setIndexed(true)'?文檔ID只是'scoreDoc.doc'? –
對,使用該模式,您的documentId可能是唯一設置爲「Store.YES」的字段。無論字段存儲與否*哪個文件是不匹配的影響*搜索時,從['IndexSearcher.doc']只有在獲取文檔(例如什麼獲取返回。(https://lucene.apache.org/核心/ 5_3_0 /核心/ index.html的?組織/阿帕奇/ Lucene的/搜索/ IndexSearcher.html))。關於如何使用標識符,如果您試圖從外部資源中識別文檔,我不會使用Lucene的內部DocID。使用數據庫中的密鑰或文件系統路徑或任何適合情況的密鑰。 – femtoRgon
您通常不需要指定是否要索引文檔。 'TextField','StringField'等每個對文檔應如何分析自己的隱式戰略('TextField'被索引和分析,'StringField'被索引,但沒有分析,'StoredField'沒有索引)。 – femtoRgon