我有一个大约十亿个唯一字符串的列表,大多数是十几个字符。我想找到包含或匹配搜索字符串的所有字符串,理想情况是在不到100-200ms的时间内,以及尽可能少的硬件(我假设我需要大量的RAM)。存储和检索此内容的最佳方法是什么?
LIKE '%search%'
不使用索引,但LIKE '%search'
和LIKE 'search%'
都使用索引。这是最后的手段,但不理想,因为我想在目标字符串中的任何地方找到搜索字符串。答案 0 :(得分:0)
您是否考虑过使用众多MapReduce框架中的一个来解决您的问题? MapReduce的本质是你分裂和征服,所以你解决一个非常简单的问题(比如,你的十亿个独特字符串中只有一个包含你的搜索词)十亿次,然后你将十亿个答案组合成一个答案。而不是只有一台具有大量RAM的机器来解决您的问题,您可以要求许多设备较少的机器一起解决您的问题。看看这个。这可能就是你要找的东西。