回答
有沒有辦法將索引保存在RAM中而不是保存在硬盤上?
使用RAMDirectory類
SampleUsage here
從Lucene的常見問題
也普遍更快的索引性能最好用RAM使用而不是文檔計數進行刷新,並儘可能使用RAM緩衝區。
編輯:RE:RamDirectory,由於API說RamDirectory是內存駐留目錄執行。,由目錄指定,只保留那些指數RAM RAMDirecory
RE:緩存在我的知識,Lucene的通過過濾器請看看@CachingWrapperFilter手段和QueryWrapperFilter
RAM磁盤可能是解決方案。迷你HOWTO可在http://www.vanemery.com/Linux/Ramdisk/ramdisk.html獲得。將RAM磁盤掛載爲索引目錄,並且應該完成。
查看RAMDirectory文檔。這是一個basic usage example。這隻有在索引足夠小的情況下才有效。
並感謝您的回答。 什麼尺寸會很小? 該指數約爲20 MB,我們預計它不會增長超過5倍。這足夠小嗎? – elif 2009-08-19 08:04:01
不客氣。 100 MB的確足夠小。您仍然應該考慮在適當的JVM堆棧大小設置下使用磁盤索引。這樣可以避免在重新啓動應用程序時重新編制索引,並且可能與RAMDirectory一樣快。另見: http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Scaling-Lucene-and-Solr關於搜索速度。 – 2009-08-19 09:03:21
爲什麼重新編制索引當我重新啓動應用程序?我以爲我可以使用RAMDirectory將硬盤上的索引讀入RAM中。每次我想將索引讀入RAM時,是否必須重新索引? 謝謝你的鏈接。 – elif 2009-08-20 10:24:09
- 1. 有沒有辦法在Lucene中使用RegexpQuery搜索術語?
- 2. 有沒有辦法在Lucene中索引CHM文件?
- 3. 有沒有辦法在彈性搜索中加入2個索引?
- 4. 有沒有辦法將第三方搜索索引提取到IBM Connections搜索索引中?
- 5. 在lucene索引中搜索「AND」
- 6. 有沒有辦法在Eclipse中搜索包中的文本?
- 7. 有沒有辦法在Slick中創建一個聚類索引?
- 8. Rails:有沒有辦法將整個* .html.erb保存到@Var中?
- 9. 有沒有辦法將列表中的索引合併在一個列表中
- 10. 有沒有辦法搜索集合中的每個元素c#
- 11. 有沒有辦法在nrepl中進行歷史搜索?
- 12. 有沒有辦法在Mailkit中遞歸搜索文件夾?
- 13. lucene是否在搜索時遍歷整個倒排索引?
- 14. Sharepoint搜索2013 - 有沒有什麼辦法來索引存儲在數據庫中的URL列表?
- 15. Lucene的搜索沒有找到關鍵字索引字段
- 16. 有沒有辦法同時搜索2個或更多字段?
- 17. Selenium:有沒有辦法在整個頁面上搜索給定的關鍵字?
- 18. Lucene中的索引和搜索日期
- 19. 有沒有辦法搜索搜索結果?
- 20. 在lucene中索引
- 21. 有沒有辦法在KendoUI網格中索引數字
- 22. 有沒有辦法在Fluent nHibernate中命名唯一索引?
- 23. 有沒有辦法通過枚舉在Rust中索引數組?
- 24. 在Lucene索引的字段中搜索多個單詞
- 25. 有沒有辦法搜索mySQL數據庫中的所有表?
- 26. Sitecore Lucene索引 - 在父Lucene中保存子字段值doc
- 27. 有沒有辦法在單個mysql查詢中搜索所有字段?
- 28. 有沒有辦法在數據加載後更改ElasticSearch中索引的名稱?
- 29. 有沒有辦法解決索引索引
- 30. Lucene索引和搜索
謝謝非常感謝您的詳細解答。我還有兩個問題。 首先,我讀了Lucene緩存,這將保持部分索引在RAM中。但是RAMDirectory是不同的,對吧?它是否保留了RAM中的所有索引? 其次,我看到了setRAMBufferSizeMB,我的理解是,它是爲了加快索引而不是搜索。它是否也加快了搜索速度? – elif 2009-08-19 08:08:01
oops,將編輯我的文章 – Narayan 2009-08-19 08:24:13
從「ImproveSearchingSpeed」:「使用readOnly = true打開IndexReader」,您知道如何在Lucene 4+中執行此操作嗎?我找不到任何例子... – Gevorg 2013-09-23 23:12:49