求相似关键词检索的方案,急,5月期间在线等
困扰了很多天了,现上来请db版的高人给支个招。
目标:实现相似查询:数据库某表中有一个关键词字段,通过输入不定长度一句话如“ABCDEFGHIJK宋祖德LMNOPQRST”,能查出此字段中所有的,在输入的语句中相似的关键词,比如根据其中的“宋祖德”查出“宋祖英”。其中对于“相似”的定义,暂定为至少两个紧挨着的字相同,或两个间隔一个字的字相同,比如"axb"和"ayb"认为是相似的。
说明:如果用patindex函数加通配符,似乎可以实现查出关键字中的几个字在输入的语句中出现,但如何控制其前后的顺序,似乎想不出办法了。比如,输入"xxxxxxxxABCxxxxxx",应该可查出相似的"AOC",但如果是输入"AxxxxxxxxBxxxxxxC",就不应该再查出此关键词了。
另外:SOUNDEX(), DIFFERENCE()这两个方法暂不考虑了,因为我的参数是一个长句字符串。循环嵌套也暂不考虑,我的关键字数据库中会有好几十万的数据,性能也是一个需要面对的问题。