我之前在这个主题上问similar question,我最终得到了几个有效的解决方案,一个基于bloom过滤器+ ngrams,另一个基于哈希表+ ngrams。两种解决方案都能很好地处理小数据集(< 1000文本,通常是推文),但计算时间呈指数增长,这意味着10,000次可能需要数小时。
我目前正在使用Ruby,也许这就是问题,但是我可以尝试解决这个问题吗?
答案 0 :(得分:1)
如果您希望在大量数据集中进行文本搜索,则可能需要查看类似solr的内容。有一个非常容易设置的solr gem叫做sunspot http://outoftime.github.com/sunspot/
答案 1 :(得分:0)
您的问题可以通过以下步骤解决:
快速Google搜索显示this library包含Ruby后缀数组实现。您可以在O(n)Reference中生成LCP数组。