快速正则表达式搜索

时间:2011-11-08 17:11:48

标签: performance search indexing clustered-index

以某种方式索引50-100GB的文本行然后能够执行快速正则表达式搜索的方法是什么?至少比逐行更快。 正则表达式模式并不总是相同,因此在构建索引时无法将其考虑在内。

使用Lucene可以实现这样的效果吗? 我知道可能有后缀树,但索引需要太多内存(远远超过100GB)。

1 个答案:

答案 0 :(得分:1)

您要做的主要事情是事先确定常见的搜索字词,然后根据它进行索引。

例如,也许您预计会有大量搜索以“Foo”开头的行。然后您可以提前运行该搜索并存储以“Foo”开头的行列表。然后,如果有人搜索以“Foobar”开头的行,您已经有一个缩小的行子集要搜索。

如果您想变得非常聪明,可以通过编程方式分析常见搜索以查找重复搜索组件,然后根据这些常用组件进行索引。