当前位置:编程学习 > C#/ASP.NET >>

类百度 检索功能的 sql 开发(简单实现)

恩。。。进来看看的 朋友。。。。。。。。。。好!



     搜索是我们开发中经常遇到的问题。。。只是简单的使用 like%%   不能解决很多问题

  不知道 大家自己写的方法怎么样。。
 下面是我写的一个 存储过程 简单功能:
简单实现类baidu模糊查询等的功能:

数据库中有数据 : '月光网络科技' 和’一样的月光,空气变得有点闷‘。

输入:’网络‘ 。   时,搜索结果 :'月光网络科技' 

输入:’网络科技发展公司‘ 。  搜索结果:'月光网络科技' 

输入:’一样的泪水‘。   搜索结果:’一样的月光,空气变得有点闷‘

输入:‘今天阴天,有点闷’ 搜索结果:’一样的月光,空气变得有点闷‘

如果是 输入:’天天网络科技发展‘  ,  怎么能提取里面 ’网络‘、‘科技’或是‘网络科技’ 进行select ?????
在优先检索结束的时候。。。怎么能提取中间词语 再次进行 检索?????



  欢迎高手 指点。。。下面是我写的一个简单的 存储过程:

Create procedure Search
@search varchar(50)
as
declare @key varchar(50)
declare @i int 
set @i=len(@search)
while @i>0
begin
set @key=left(@search,@i)
set @i=@i-1
if
(select count(*) from table_name where a like '%'+@key+'%' or b  like '%'+@key+'%' or c  like '%'+@key+'%' or d like '%'+@key+'%' or e like '%'+@key+'%' )>0
begin
select  *,KKey=(@key)  from table_name where a like '%'+@key+'%' or b  like '%'+@key+'%' or c  like '%'+@key+'%' or d like '%'+@key+'%' or e like '%'+@key+'%'  order by ID desc
break
end
else
begin
set @key=right(@search,@i)
if
(select count(*) from table_name where a like '%'+@key+'%' or b  like '%'+@key+'%' or c  like '%'+@key+'%' or d like '%'+@key+'%' or e like '%'+@key+'%' )>0
begin
select  *,KKey=(@key)  from  table_name where  a like '%'+@key+'%' or b  like '%'+@key+'%' or c  like '%'+@key+'%' or d like '%'+@key+'%' or e like '%'+@key+'%' order by ID desc 
break
end
end
end
RETURN

   有兴趣的朋友交流啊。。。。。呵呵 --------------------编程问答-------------------- 分词是没那么简单的,首先要有字库,有了字库才有拆字的实现,才有真正的智能搜索 --------------------编程问答-------------------- 不简单 --------------------编程问答-------------------- 如果不想建词库,可以简单分词,两个字一个词,比如
月光网络科技 可以分成:月光、光网、网络、络科、科技
然后对这些词查询
不过搜索的结果也就比有词库要含糊了 --------------------编程问答-------------------- 如果sql语句可以像正则表达式那样搜索就好了 --------------------编程问答-------------------- 呵呵 那就 考虑  语言方面 解决了。。。。。。

  反正咋说  都不是简单的活。。。。人家全文检索 使用的软件 是咋个弄的啊 呵呵???


 谁详细介绍一下? --------------------编程问答-------------------- 具体 想知道 使用 sql 的话 实现的最大程度。。。。 


呵呵
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,