【发布时间】:2012-04-26 10:00:49
【问题描述】:
我有一个包含大约十亿个唯一字符串的列表,其中大多数长度为几十个字符。我想找到包含或匹配搜索字符串的所有字符串,最好在不到 100-200 毫秒的时间内,并且在尽可能少的硬件上(我假设我需要大量的 RAM)。存储和检索它的最佳方法是什么?
- 据我所知,MySQL 的
LIKE '%search%'不使用索引,但LIKE '%search'和LIKE 'search%'都使用。作为最后的手段,这是可以接受的,但并不理想,因为我想在目标字符串中的任何位置找到搜索字符串。 - 使用像 Redis 这样的键值对存储需要存储所有可能的子字符串组合,而且我认为需要大量 RAM。
- 字符串列表大约有十几个 GB。像 Lucene 这样的全文搜索服务器是否可行,甚至是理想的,而不是拥有数十亿行/文档/记录?它肯定会节省解析。
【问题讨论】:
-
而且由于这个问题并没有明确的答案,是否应该将其转换为社区维基?
标签: scalability database-performance