gpt4 book ai didi

java - Lucene 是 Key/Value HashMap 的好选择吗?

转载 作者:行者123 更新时间:2023-11-29 06:46:08 28 4
gpt4 key购买 nike

我遇到了一个问题。我正在做一个迷你网络爬虫。现在拥有一个高效的 HashMap 很重要。我只想要只有插入和查找的键/值数据结构。

我知道 Lucene 可以完成这项工作,只需要有两个字段:键和值;但它有效率吗?还有其他更简单的解决方案吗?

Ps:它可以是 PHP 或 Java,但我更喜欢 PHP。

注意:我需要它被持久化。并且它会打开和关闭几次。

最佳答案

如果您想要的只是一个非庞大数据集的快速、持久的键值存储,Lucene 可能不是最佳解决方案 - Berkeley DB 将是显而易见的选择。也就是说,Grant Ingersoll 在今年的 Lucene Revolution 大会上就此发表了演讲。他故意带着支持 Lucene 的偏见来回答这个问题,并与几位听众就当代文档数据库(如 CouchDB)提供了哪些 Lucene 没有提供的内容进行了交流。对于最终可能需要二级索引的任何非大型数据集,我认为这是一个很好的解决方案。 Lucene 的键/值查找性能不会像 Berkeley DB、CouchDB、Tokyo Tyrant 等那样快,但它仍然非常快,对于许多应用程序来说已经足够了。我认为他在最近的笔记本电脑上测量了大约 50 毫秒的键/值查找。如果稍后您需要添加二级索引(就像您可能会在网络抓取的结果上一样),与那些产品相比,使用 Lucene 会更容易。

BDB 等其他工具的编码比 Lucene 更简单。但如果这是一个问题,只需使用 Solr,它可以通过简单的 HTTP 调用轻松添加文档和搜索(您需要修改 schema.xml 配置文件中的字段,否则,Solr 应该准备好-开箱即用)。

现在,如果您的数据集太大而无法在一台机器上合理地容纳,分布式键值存储(如 Project Voldemort 或 Riak)可能更易于设置和管理。但是 Lucene 可以让您在一台机器上走得更远,尤其是如果您没有索引很多字段 - 至少 TB,我猜。

如果您确实使用 Lucene,我会仔细考虑除了您想要搜索的键之外是否真的没有任何属性 - 不妨在第一次存储它们,因为 Lucene 使它变得容易.

关于java - Lucene 是 Key/Value HashMap 的好选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4670497/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com