搜索中的谓词处理(连载一)

作者:chilleen 来源:ITPOW 日期:2006-1-15

来源:ITPOW(www.itpow.com)

定义
在搜索词中空格代表加号代表减号代表,忽略大小写与中英文符号区别,不考虑括号引号

当我们从客户端获取搜索词后,要将空格替换成SQL语句认为的and加号替换成or减号替换成not,如果用户的输入合乎语法,那么就挺简单的,直接替换就行了,可是用户的输入往往不合乎语法,这就需要“规范搜索词”。

搜索词不规范(不合乎语法)不外乎两种情况:两端出现谓词、连续出现谓词。比如“+中国 四川”,这个搜索词中,第一个谓词“+”就是不合法的。再比如“中国 +-+四川”,中间连续出现了四个谓词,只能取一个,假设我们只认最先出现的那个。

开始我的想法是一遍实现“规范搜索词”,可是不便于理解,所以我分了两步走,第一步去除搜索词两端的谓词,第二步处理相邻的谓词。

看下面的示例(VBScript语言),程序将“-中国 +农业-发展+  +”修正为了“中国 农业-发展”


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

连载一结束

相关文章