2010-09-27 84 views
15

是否有可能使用Lucene作为完整的数据存储(与其他(mongo,couch)nosql变体一样)。Lucene作为数据存储

我知道有一些限制,如一个索引器最近更新的文档不会显示在其他索引器中。所以我们需要重新启动索引器来获取更新。

但最近我偶然发现了solr,似乎这些问题可以通过某种快照复制来避免。

因此,我认为我可以使用lucene作为数据存储,因为这也使用mongo和沙发内部用于管理文档的相同类型的文档(基于JSON),并且其经过验证的索引算法可以超快速地获取记录。

但我很好奇有没有人试过之前..?如果不是没有选择这种方法的原因是什么。

+1

我对Lucene了解不多,但我认为它大多是一个索引器;它不存储文档,它只是索引它们。所以你需要一个Lucene之外的数据存储......无论如何,我是否有任何意义? – pascal 2010-09-27 10:45:07

+1

@pascal,其错误.. lucene也可以存储文件。当我们定义字段时,我们可以指定是否需要存储该项目或只是索引... – RameshVel 2010-09-27 10:46:04

+2

请参阅http://stackoverflow.com/questions/3215029/nosql-mongodb-vs-lucene-or-solr-as-your - 数据库/ 3216550#3216550 – Mikos 2010-09-27 23:33:36

回答

4

我只和Solr合作过,Lucene的衍生产品(我会推荐使用Solr来处理任何人),所以我的观点可能有点偏差,但应该可以使用Solr作为数据存储。如果没有更加永久的背景,这将不会很有用。

您可能会遇到的问题是,将数据输入到Solr并不能保证您在预期时将其还原。由于索引器决定以某种方式包含结果,因此不要使用非常严格的刻面,因此可能会在检索数据时遇到问题。

我对这种方法做了一些尝试,但我看到的唯一真正的好处是,您希望在客户端使用搜索索引,以便他们可以在内部快速搜索然后查询扩展信息的数据库。

我的建议是使用solr进行搜索,然后让它返回您可能需要的数据的简短样本以及用于在传统数据存储中进一步查询的索引。

TL; DR:是的,但我不会推荐它。

15

还有耐久性的问题。虽然Lucene索引不应该被破坏,但我已经看到它发生了。 Lucene修复破损索引的方法是“丢弃并重建原始数据”。这对索引工具来说非常合理。但它确实要求您将数据存储在其他地方。

+0

多数民众赞成在一个好点... – RameshVel 2010-09-27 10:56:26

3

The Guardian uses Solr as their data store。您可以在幻灯片中看到他们的一些原因。

在任何情况下,我认为他们的网站的流量非常大(当然比我所做的任何工作都要多),所以我觉得我会很乐于说Solr可能会为你工作,因为它可以满足他们的需求。

+0

根据幻灯片,卫报仍然使用关系数据存储。 Solr被用作为其API提供动力的数据库。 – anon 2015-02-25 16:29:59

相关问题