2013-03-03 114 views
0

我想建立针性能的原因索引。我应该使用哪种RDBMS或数据结构?

从二进制文件中有数百个非常随机的字符。

我需要比较干草堆和数百针。如果找到匹配模式,则需要返回针头内容。

对于实例

$haystack = "£$%^&DFFFD$%^&*(" 


Needles: 
    1 | £"$£AAAA"£$ 
    2 | ((*BHJJ£$£$ 
    3 | ^&DFFFD$ 
    4 | &&&&&HUIH"£$% 

应该从ID 3

哪个RDBMS或数据结构,我应该使用返回^ & DFFFD $%?

该项目将在PHP

+0

从针头创建DFA。 (这基本上是GREP所做的)。如果针没有重叠,您甚至可以使用(f)lex为您生成DFA。 – wildplasser 2013-03-03 11:20:50

+0

@wildplasser我在PHP中找到了开源DFA http://www.cip-labs.net/2011/05/04/deterministic-finite-automaton-in-php/ - 看这个例子,我很困惑如何把针内容到DFA – 2013-03-03 12:17:52

+1

那么,这是一个勇敢的练习。我不希望有人尝试在PHP中构建DFA。问题是:构建DFA的人不做PHP,而知道PHP的人不知道如何构建DFA ;-) – wildplasser 2013-03-03 12:29:50

回答

0

做我会用链接的针散列去。

当我得到干草堆时,我创建了所有可能的针的列表,计算它的散列并将其与已计算的针散列值进行比较。