为什么lucene索引存储在BerkeleyDB中?

时间:2013-10-01 05:36:36

标签: lucene

我找到了一些教程,他们将索引文件存储到BerkeleyDB中,而不是将索引文件存储到目录中。为什么?它是否提高了搜索性能?

1 个答案:

答案 0 :(得分:1)

上面提到的那本书Lucene in Action, Second Edition确实在9.2 Storing an index in Berkeley DB章中提到了伯克利数据库。如前所述,它引入了事务支持。数据库提交将存储新更改的实体以及写入数据库的任何更改。实体和搜索索引将始终同步。

根据定义,它将比纯磁盘写入慢,因为在写入过程中会发生更多事情。同样适合阅读;以自定义格式存储数据会受到某种惩罚。但是,存储在“个人信息管理器”中的数据量可能不会那么大,并且可能不会注意到小的惩罚(可能是后台加载?),或者是基于数据库的解决方案提供的事务支持所接受的数据量。

本书引用,第292页。

  

Chandler项目(http://chandlerproject.org)是一项持续不断的努力,旨在建立一个开源的个人信息管理器。钱德勒旨在管理各种类型的信息,如电子邮件,即时消息,约会,联系人,任务,笔记,网页,博客,书签,照片等等。它是一个可扩展的平台,而不仅仅是一个应用程序。搜索是钱德勒基础设施的重要组成部分   [...]
  Chandler的底层存储库使用Oracle的Berkeley DB,其方式与传统的关系数据库完全不同,受资源描述框架(RDF)和关联数据库的启发。 Andi创建了一个Lucene目录实现,它使用Berkeley DB作为底层存储机制。在数据库中使用Lucene索引的一个有趣的副作用是它提供的事务支持。 Andi将他的实现捐赠给Lucene项目,并将其保存在contrib目录的db / bdb区域。