Implementationofsupportlogicsearch/wordsearch/phrasesearch+supportOR/ANDkeywordVBSC
类函数。替换传入字符串成为SQL语句的WHERE关键字后面的表达式:单词搜索{例如:肖明}
短语检索
短语中的每个词都将被检索。
例如:1小1小强Xiaoqiang Xiaoqiang Xiaoqiang
逻辑搜索
支持运算符和运算符。
例如:肖明和小强,小强。
复杂条件:
例如:(小明或肖明)和(小强或小强)
例如:(小明或小强的昵称)
例如:方程的系数和(粤语或北京人)
-----------------------------------------------------------
复制代码代码如下所示:
类createquerystring
公共objreg
公共intstart
公共strfield
私人objnode2
私人strtext
公共财产让QueryString(strvalue)
strtext = 1例(strvalue)
最后的财产
私有子class_initialize()
集objreg = new RegExp
strfield =(标题+文章)
端子
私有子class_terminate()
集objreg =没有
端子
公共默认函数gettext()
昏暗的blnres
昏暗的strsky
与objreg
IGNORECASE =真。
全局=真的
模式
blnres =测试(strtext)。
结束
如果(不blnres然后)
intstart = 2
gettext =strfield像strtext %
其他的
objreg。模式=砂| SOR
blnres = objreg测试(strtext)。
如果blnres然后
strsky =检查()
如果strsky = FALSE然后
gettext =娃哈哈()
其他的
strsky gettext =
最后如果
其他的
gettext =娃哈哈()
最后如果
最后如果
端功能
私人职能娃哈哈()
昏暗的strter
昏暗的strlikes
昏暗的strors
暗条
昏暗的objre
strter =
strlikes = 或(strfield像'
strors =)%
objreg。模式= (的 )。
集objre = objreg执行(strtext)。
在每一条objre
strter = strter strlikes STRI strors
下一个
娃哈哈=中(strter,4)
intstart = 3
端功能
私有函数checkyes(strmode,intcount)
昏暗的objnode1
objreg模式= strmode。
集objnode1 = objreg执行(strtext)。
如果objnode1计数<1。
checkyes =真
其他的
集objnode2 = objnode1(0)
如果objnode2.submatches.count < intcount然后
checkyes =真
最后如果
最后如果
端功能
私有函数和()
昏暗的应力
昏暗的strccc
昏暗的straaa
昏暗的a143
朦胧的我
昏暗的objn
昏暗的blntru
昏暗的blnbbb
应力=strfield (喜欢
strccc =)%
straaa =
N1 = 0
blntru =真
blnbbb =真
objreg。模式= (的 )。
集objn = objreg执行(strtext)。
a143 = objn计数1。
如果(objn.item(a143)= 和)或(objn.item(a143)= 或)然后
或= false
退出功能
最后如果
每次我在objn
如果blntru然后
如果(i 和和(i)或)
blntru = false
我strccc straaa = straaa应力
其他的
blnbbb = false
退出
最后如果
其他的
如果(i 和)或(i = 或)
blntru =真
straaa = straaa我
其他的
blnbbb = false
退出
最后如果
最后如果
下一个
如果(不blnbbb然后)
或= false
其他的
或= straaa
intstart = 4
最后如果
端功能
私有函数检查()
昏暗的重
暗淡的身体
昏暗的RE2
昏暗的有
昏暗的STR
昏暗的str1
昏暗的A1
昏暗的A2
昏暗的A3
昏暗的A4
STR = strfield '像'
str1 =%
与objreg
。模式=^ (。+ )的(和|或)
重新测试(strtext)=。
。模式= S(和|或)的(。+ )
能力测试(strtext)=。
结束
如果你和有那么
如果CheckYes(^ ((的 )(博尔 B | 乐队 B)( * S)(和|或)()( * S)( 博尔 B | 乐队 B)(的 ) $),6)然后
检查= false
其他的
与objnode2
(0)submatches A1 =。
(2)submatches A2 =。
(4)submatches A3 =。
(6)submatches A4 =。
检查= (STR A1 str1的。submatches (1)STR A2 str1的_)
(3)。submatches (STR A3 str1。submatches(5)STR A4 str1的
intstart = 5
结束
最后如果
再然后
如果CheckYes(^ ((的 )(博尔 B | 乐队 B)(的 ))(和|或)(1),4)然后
检查= false
其他的
与objnode2
(0)submatches A1 =。
(2)submatches A2 =。
(4)submatches A3 =。
检查= (STR A1 str1的。submatches (1)STR A2 str1的_)
(3)。submatches (STR A3 str1)
intstart = 5
结束
最后如果
有那么
如果CheckYes((1)(和|或)/((的 )(博尔 B | 乐队 B)(的 ) $),4)然后
检查= false
其他的
与objnode2
(0)submatches A1 =。
(2)submatches A2 =。
(4)submatches A3 =。
检查= (STR A1 str1)。Submatches(1)(STR A2 str1的_
(3)。submatches STR A3 str1
intstart = 5
结束
最后如果
其他的
检查组和()
最后如果
端功能
类的结束
值得注意的是,在-------------------------
替换字符串不是完整的SQL语句。它只是SQL语句的键后面的表达式。当你把它发送到ASP程序时,你可以把它添加到前面。
选择ID、标题、名称,是从searchall哪里
类似的SQL语句
在------------------------- VBscript案例
昏暗的objroot1
集objroot1 =新createquerystring
objroot1.querystring= = = = = strtext到字符串替换
objroot1.strfield =字段名称查询= = =如果没有设置。默认值是(标题+文章)
strtext = objroot1(SQL)的=========语句替换好
如果(objquerystring.intstart = 4)然后
调用MsgBox(逻辑搜索开始)
最后如果
集objroot1 =没有