关于关键字搜索的数据结构的建议

时间:2012-04-06 23:55:18

标签: java lucene keyword

我需要整合一个能够有效提供关键字搜索功能的数据结构。

我的指标是:

  1. 大约500,000种产品。
  2. 每件产品大约20多个关键字(猜测)。
  3. 产品由ID约10位数标识,但可以是任何ASCII代码。
  4. 如果可能的话,我想尝试将数据结构放在内存中。我将在服务器上,因此我可以假设一些重要的内存可用性。

    速度很重要。使用LIKE数据库查询将不是一个可接受的解决方案。

    有关数据结构的任何想法吗?

    我的想法:

    TrieMap

    对于关键字非常有效,但是需要有一个产品ID列表悬挂在任何叶子上,因此严重缺乏内存。任何有助于此的想法?

    压缩

    我想到了各种压缩方案,但没有任何压缩方案具有重要价值。

    还有其他人把这样的东西放在一起吗?你能分享一下你的经历吗?

    数据可能会发生变化但不经常发生变化。每天重建结构以适应变化是合理的。

1 个答案:

答案 0 :(得分:2)

您是否考虑过在内存中使用lucene或作为文件系统索引?

它非常快,并且有很大的空间可以满足将来可能出现的进一步要求。