我已经搜索过论坛以前的帖子了,都没有找到答案。
如果是多字段查询多关键词的模糊查询,首先要分隔字符串,然后还要循环在各字段内进行匹配,然后再根据匹配度排序。这个如何写是好。求实例代码
我看大多数要么是根据判断字符长度,要么是根据匹配1次+1权重进行排序。可是这代码怎么写呢。
你比如我搜索关键词: 2012 北京 王先生
想得到的结果是 地址字段里含有北京的(或是这3个关键字符串任意的),名称字段里含有这3个关键字符串的(例如:王先生),其他字段也含有这3个关键词字符串的(例如:2012)
如果是多字段查询多关键词的模糊查询,首先要分隔字符串,然后还要循环在各字段内进行匹配,然后再根据匹配度排序。这个如何写是好。求实例代码
我看大多数要么是根据判断字符长度,要么是根据匹配1次+1权重进行排序。可是这代码怎么写呢。
你比如我搜索关键词: 2012 北京 王先生
想得到的结果是 地址字段里含有北京的(或是这3个关键字符串任意的),名称字段里含有这3个关键字符串的(例如:王先生),其他字段也含有这3个关键词字符串的(例如:2012)
<%
Keywords = Request("Keyword")
aKeywords = Split(Keywords," ") '// 将输入的字符串根据空格分开,获得一个数组<BR>
sSql = "Select * From YourTable Where 1=1"
For i = 0 To UBound(aKeywords)
If aKeywords(i)<>"" Then
'// 当前数组值不为空 加上新条件
sSql = sSql & " And (Title Like '%" & Str4Sql(aKeywords(i)) & "%' or Title2 Like '%" & Str4Sql(aKeywords(i)) & "%' or Title3 Like '%" & Str4Sql(aKeywords(i)) & "%') "
End If
Next
sSql = sSql & " Order By ID Desc "
Response.Write(sSql)
Response.End()
%>