1
我需要组合一个能有效提供关键字搜索功能的数据结构。针对关键字搜索的数据结构建议
我的指标是:
- 协卡50万件产品。
- 每个产品大约有20多个关键字(猜测)。
- 产品通过大约10位数字的ID进行标识,但可能是前进的任何ASCII代码。
我想尽可能地适合内存中的数据结构。我将在服务器上,以便我可以承担一些重要的内存可用性。
速度很重要。使用LIKE
数据库查询将不是一个可接受的解决方案。
数据结构的任何想法?
我的想法:
TrieMap
非常有效的关键字,但没有将需要的产品ID挂任何叶子那么认真内存饿的列表。任何想法可以帮助这一点?
压缩
各种压缩方案浮现在脑海中,但没有跳出如显著的价值。
有没有其他人把这样的东西放在一起?你能分享你的经验吗?
数据可能会更改,但不会经常更改。每天重建结构以适应变化是合理的。
只是看着你如何使用lucene做到这一点,但它看起来像谷歌搜索是最好的事情 - http://javatechniques.com/blog/lucene-in-memory-text-search-example/ – pimaster 2012-04-07 00:25:56
谢谢!!我花了半天的时间来构建一个可以工作的索引,它看起来会比使用Lucene完全替换现有的可疑搜索机制要多一点。一个非常特殊的软件包 - 只要它看起来像乍一看一样稳定。 – OldCurmudgeon 2012-04-10 15:02:01
顺便说一句 - 有一个很好的Lucene教程文档[这里](http://alias-i.com/lingpipe-book/lucene-3-tutorial-0.5.pdf)。 – OldCurmudgeon 2012-04-10 15:28:01