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

ejiamaster 2008-03-09 12:06:30
恩。。。进来看看的 朋友。。。。。。。。。。好!



搜索是我们开发中经常遇到的问题。。。只是简单的使用 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

有兴趣的朋友交流啊。。。。。呵呵
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ejiamaster 2008-03-11
  • 打赏
  • 举报
回复
具体 想知道 使用 sql 的话 实现的最大程度。。。。


呵呵
ejiamaster 2008-03-11
  • 打赏
  • 举报
回复
呵呵 那就 考虑 语言方面 解决了。。。。。。

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


谁详细介绍一下?
sunzhong2003 2008-03-09
  • 打赏
  • 举报
回复
分词是没那么简单的,首先要有字库,有了字库才有拆字的实现,才有真正的智能搜索
fonvey 2008-03-09
  • 打赏
  • 举报
回复
如果sql语句可以像正则表达式那样搜索就好了
syjchyx 2008-03-09
  • 打赏
  • 举报
回复
如果不想建词库,可以简单分词,两个字一个词,比如
月光网络科技 可以分成:月光、光网、网络、络科、科技
然后对这些词查询
不过搜索的结果也就比有词库要含糊了
ccaakkee 2008-03-09
  • 打赏
  • 举报
回复
不简单

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧