Lucene 作为数据存储

2022-09-03 13:36:00

是否可以使用Lucene作为完整的数据存储(如其他(mongo,couch)nosql变体)。

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

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

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

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


答案 1

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


答案 2

我只使用过Solr,Lucene衍生产品(我建议使用Solr来吸引任何人),所以我的意见可能有点偏见,但应该有可能使用Solr作为数据存储是的,但是如果没有更永久的东西在后台,它就不会很有用。

您可能遇到的问题是,在Solr中输入数据并不能保证您会在预期时将其取回。在使用非常严格的分面时,您可能会遇到检索数据的问题,仅仅是因为索引器决定以某种方式将结果混为一谈。

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

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

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


推荐