2013-10-01 29 views
0

我發現一些教程,他們將索引文件存儲到BerkeleyDB中,而不是將索引文件存儲到目錄中。爲什麼?它提高了搜索性能嗎?爲什麼lucene索引存儲在BerkeleyDB中?

+0

作爲概念證明?有空閒時間的無聊開發者?你可以給我們的教程網址? – sisve

+0

Lucene in Action第二版[第307頁] –

回答

1

提到的書,Lucene in Action, Second Edition,在章節9.2 Storing an index in Berkeley DB中提到了Berkeley DB。如前所述,它引入了事務支持。數據庫提交將存儲新更改的實體以及寫入數據庫的任何更改。實體和搜索索引將始終同步。

根據定義,它會比純磁盤寫入慢,因爲寫入過程中會發生更多事情。閱讀也是一樣;以自定義格式存儲數據會有一些損失。然而,存儲在「個人信息管理器」中的數據量可能並不那麼大,並且可能不會注意到一小部分的懲罰(可能是後臺加載?),或者由基於數據庫的解決方案提供的事務支持接受。從書中

行情,頁292

錢德勒項目(http://chandlerproject.org)是一個持續的努力建立一個開放源碼的個人信息管理器。 Chandler旨在管理各種類型的信息,例如電子郵件,即時消息,約會,聯繫人,任務,筆記,網頁,博客,書籤,照片等等。它是一個可擴展的平臺,不僅僅是一個應用程序。搜索是錢德勒基礎設施的重要組成部分。

Chandler的底層存儲庫使用Oracle的Berkeley DB,與傳統的關係數據庫完全不同,它受到資源描述框架(RDF)和關聯數據庫的啓發。 Andi創建了一個使用Berkeley DB作爲底層存儲機制的Lucene目錄實現。在數據庫中使用Lucene索引的一個有趣的副作用是它提供的事務支持。 Andi將他的實現捐獻給Lucene項目,並將其保存在contrib目錄的db/bdb區域中。

相關問題