<% dim keyword,keywordlist,path,sql '定义变量
sql=""
keyword=Request.QueryString("keyword") '使用Request 对象的QueryString方法读取表单文本域中用户输入的关键词
if keyword="" then '关键词为空
'给出提示,返回前一页。history.back() 函数的作用是返回前一页
response.write "<Script>window.alert('请输入关键词!');history.back();</Script>"
else
keyword = replace(keyword,"'","") '用空格替换关键词中的字符"'"
keyword = replace(keyword,"[","") '用空格替换关键词中的字符"["
keyword = replace(keyword,"]","") '用空格替换关键词中的字符"]"
keyword = replace(keyword,",","") '用空格替换关键词中的中文字符","
keyword = replace(keyword,",","") '用空格替换关键词中的英文字符","
keyword=ltrim(rtrim(keyword)) '去掉关键词左边和右边的空格。函数LTrim去掉字符串左边空格,函数RTrim去掉字符串右边空格
keywordlist=split(keyword) '将用户输入的关键词用空格分成多个关键词并保存在一维数组keywordlist中
path=Request.QueryString("path") '使用Request对象的QueryString方法读取path值
company="/"&Request.QueryString("path")&"/"
set rs=server.createobject("adodb.recordset") '建立RecordSet对象
for i=0 to ubound(keywordlist) 'ubound 函数获得数组最大下标值
keywordlist(i) = Trim(keywordlist(i)) 'Trim 函数去掉字符串左边和右边函数
sql=sql &" FOX_xinxi.company like '%" & keywordlist(i) & "%' or " 'sql 语句,web.title 指的是数据表web中title列的值,web.title 中包含关键词keywordlist(i)
sql=sql &" FOX_xinxi.dizhi like '%" & keywordlist(i) & "%' or "
sql=sql &" FOX_xinxi.lxrname like '%" & keywordlist(i) & "%' or "
sql=sql &" FOX_xinxi.usertel like '%" & keywordlist(i) & "%' or "
sql=sql &" FOX_xinxi.phone like '%" & keywordlist(i) & "%' or "
sql=sql &" FOX_xinxi.fbsj like '%" & keywordlist(i) & "%' or "
sql=sql &" FOX_xinxi.gjz like '%" & keywordlist(i) & "%' or "
sql=sql &" FOX_xinxi.sheng like '%" & keywordlist(i) & "%' or "
sql=sql &" FOX_xinxi.shi like '%" & keywordlist(i) & "%' or "
sql=sql &" FOX_xinxi.xiang like '%" & keywordlist(i) & "%' or "
next
sql=Left(sql,(LEN(sql)-3))
'LEN 函数获得字符串的长度,left 函数获得字符串从左边数指定数目的字符,在此是去掉字符串中最后几位的"or "
if path="" or company="" then
search_sql=" ts=0 and yz=1 and ("&sql&") order by Rnd(ID-timer())" 'sql 语句
else
'sql 语句
search_sql="company like '%" & company & "%' ts=0 and yz=1 and ("&sql&") order by Rnd(ID-timer())"
end if
'从数据库中查询满足条件的记录,并保存在rs 中
rs.open "select id,company,dizhi,lxrname,usertel,phone,gjz,memo,fbsj,xinxipic,b,ts,sheng,shi, username from FOX_xinxi where "&search_sql,conn,1,1
%>
能不能自动分割呢 也不需要用空格,也不需要用其他的符号来代替!显示相近的关键字!高手指点谢谢
追答你是说想像百度那样,搜索“知倒”,结果会出现“知倒”,“知道”吗?
那我告诉你别想了,一般企业和个人做一般的网站要达到你说的搜索效果代价是巨大的,你要知道百度要达到你说的效果是获专利技术的,是花费巨资及强大软硬件技术支持来实现的,谷歌的技术对中文近似模糊搜索都没百度技术好,更合况是你个人了。
不过如果你想达到搜索“百度”,结果出现包含“百度”,“百”,“度”还是可以实现的,就是上面我说的逐字分隔。
意思就是说在本站内,如果有一条信息是“我是一条龙”那么搜索“我不是一条龙”那么搜索结“我是一条龙”也能出现!
追答上面不是说了吗?逐字分隔搜索!!
我不是一条龙,里面是包含 我是一条龙 的,所以这条关键里的有五个字跟内容匹配,所以是可以搜到我是一条龙的。匹配字数越多的越往前排就行了。