代码之家  ›  专栏  ›  技术社区  ›  RameshVel

Lucene作为数据存储

  •  15
  • RameshVel  · 技术社区  · 14 年前

    可以用吗 Lucene 作为成熟的数据存储(像其他(mongo,couch)nosql变体)。

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

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

    因此,我认为我可以使用Lucene作为数据存储,因为这也使用Mango和CouCH内部使用的相同类型的文档(JSON)来管理文档,并且其已证明的索引算法可以快速地获取记录。

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

    3 回复  |  直到 14 年前
        1
  •  15
  •   Thilo    14 年前

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

        2
  •  4
  •   BjornS    14 年前

    我只使用过Solr,Lucene的衍生物(我建议几乎所有人都使用Solr),所以我的观点可能有点偏颇,但应该可以使用Solr作为数据存储是的,但是如果没有更持久的背景,它就不会很有用。

    您可能会遇到的问题是,在Solr中输入数据并不能保证在您期望的时候将其取回。如果使用非常严格的刻面,那么仅仅因为索引器决定以某种方式将结果块化,就可能在检索数据时遇到问题。

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

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

    是的,但我不推荐。

        3
  •  3
  •   anon    9 年前

    The Guardian uses Solr as their data store . 你可以在幻灯片中看到他们的一些理由。

    无论如何,我认为他们的网站流量很大(当然比我做的任何事情都要大),所以我想说Solr很可能会为你工作,因为这符合他们的要求。