我在lucene中保存字段id和msg以支持全文搜索。當用戶輸入一個關鍵字時,lucene執行搜索並顯示結果,當用戶使用保存的ID點擊該關鍵字時,我打開從數據庫獲取結果並顯示更多細節。是否有必要保存字段本身以在lucene中生成倒排索引
是否有可能爲Lucene來節省味精只是倒排索引申請,而不是整個味精領域,把我交給剛的ID,這樣我可以從數據庫獲取結果顯示的結果嗎?
通過這樣做我的數據不會是多餘的。
我在lucene中保存字段id和msg以支持全文搜索。當用戶輸入一個關鍵字時,lucene執行搜索並顯示結果,當用戶使用保存的ID點擊該關鍵字時,我打開從數據庫獲取結果並顯示更多細節。是否有必要保存字段本身以在lucene中生成倒排索引
是否有可能爲Lucene來節省味精只是倒排索引申請,而不是整個味精領域,把我交給剛的ID,這樣我可以從數據庫獲取結果顯示的結果嗎?
通過這樣做我的數據不會是多餘的。
在Lucene的,你存儲文檔創建/讀取的目的(如果您通過DB形容目的)和你指數作爲搜索目的倒排索引是兩個完全不同的事情。
您還沒有表現出任何代碼,你怎麼指標。
在Lucene的存儲數據是可選的,人們選擇存儲數據量太大,以避免額外DB的存儲空間的成本,但在更短的同步要求保持在主源數據結果也要求等。所以有一個權衡。
在下面的代碼片段中,DOC_ID
被索引和存儲,而TEXT_FIELD
僅被索引並且未被存儲。
Document doc = new Document();
doc.add(new Field("DOC_ID", "DOCONE", new FieldType(
TextField.TYPE_STORED)));
doc.add(new Field("TEXT_FIELD", "This", new FieldType(
TextField.TYPE_NOT_STORED)));
writer.addDocument(doc);
因此搜索後,讓說你的命中文檔 - hitDoc
所以你會得到下面, hitDoc.getField("DOC_ID")="DOCONE"
和hitDoc.getField("TEXT_FIELD")=NULL
兩個字段建立索引,但只有一個被存儲。索引意味着它可以被搜索。