asp+access:多字段多关键词模糊查询并按匹配度排序的问题

在ASP中,实现多字段多关键词的模糊查询并按匹配度排序是一项挑战。通常需要将输入的关键词分隔,遍历每个字段进行匹配,并依据匹配次数为每个结果赋予权重。示例代码显示了如何构建SQL查询,通过Like操作符在多个字段中查找关键词,并使用Order By对结果进行降序排序。查询示例针对关键词'2012 北京 王先生',期望返回包含这些关键词的记录。
摘要由CSDN通过智能技术生成
我已经搜索过论坛以前的帖子了,都没有找到答案。
如果是多字段查询多关键词的模糊查询,首先要分隔字符串,然后还要循环在各字段内进行匹配,然后再根据匹配度排序。这个如何写是好。求实例代码
我看大多数要么是根据判断字符长度,要么是根据匹配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()
%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值