我有一个大约十亿个唯一字符串的列表,长度最多只有几十个字符。我想找到包含或匹配搜索字符串的所有字符串,最好在不到 100-200 毫秒的时间内,并且在尽可能少的硬件上(我假设我需要大量的 RAM)。存储和检索它的最佳方法是什么?
- 根据我的阅读,MySQL
LIKE '%search%'
不使用索引,但LIKE '%search'
两者LIKE 'search%'
都使用。作为最后的手段,这是可以接受的,但并不理想,因为我想在目标字符串中的任何位置找到搜索字符串。 - 使用像 Redis 这样的键值存储将需要存储所有可能的子字符串组合,并且我认为需要大量 RAM。
- 字符串列表大约有十几个 GB。像 Lucene 这样的全文搜索服务器是否可行,甚至是理想的,而不是拥有数十亿行/文档/记录?它肯定会节省解析。