Lucene作为数据存储

是否可以将Lucene用作完整的数据存储(就像其他(mongo,couch)nosql变体一样)。

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

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

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

但我很好奇有没有人尝过这个…? 如果没有选择这种方法的原因是什么。

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

我只使用了Solr,Lucene衍生物(我建议将Solr用于任何人)所以我的观点可能有点偏颇但是应该可以使用Solr作为数据存储区是的,但它不会是非常有用,没有在后台更永久的东西。

您可能遇到的问题是将数据输入Solr并不能保证您在预期时将其恢复。 如果使用相当严格的分面,您可能会在检索数据时遇到问题,因为索引器已经决定以某种方式将结果归结。

我用这种方法进行了一些实验,但我看到的唯一真正的好处是你想在客户端搜索索引,以便他们可以在内部快速搜索,然后查询数据库以获取扩展信息。

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

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

Guardian使用Solr作为他们的数据存储 。 您可以在幻灯片中看到他们的一些原因。

无论如何,我认为他们的网站流量非常大(当然比我工作的任何东西都要多),所以我觉得我觉得Solr可能适合你,因为它可以满足他们的要求。