巩义赵新海:怎么做一个站内搜索?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 17:38:47
我想做一个在站内所有表搜索的引擎,,

就是sql的查询语句不知道怎么写,,,

哪位可以帮一下忙??

要能在多表中查询............
小站,没必要用百度的搜索,我只是想学一下怎么用sql的多表模糊查询!!

模糊查询
(select 字段列表 from 表A where charindex(要查找的字段,'要查找的内容')>0)
union all
(select 字段列表 from 表B where charindex(要查找的字段,'要查找的内容')>0)
union all
...

如果要查找的表很多的话,其中的表A表B可以使用
select name from sysobjects where xtype='u'
取得,用while生成sql语句后

exec(@sql)
执行

看你想怎么架构可以用开源的搜索引擎代码,也可以自己写基于分类的搜索算法


具体步骤:

  1. 对你站内的网页等信息做权限处理,哪些能别搜索,哪些不能别搜索

  2. 写一个对自己站内信息搜索的“爬虫”,算法很多不详写

  3. 检索时,从“爬虫"数据库搜索,或者做即时的运算,推荐前者


开源搜索引擎:Apache Solr,Elastic Search,Index Tank,Katta等。

分类搜索:你要做一个类似淘宝的分类系统或者设置关键字、标签等,然后对标签和类别进行搜索,参考算法有A*算法,回溯算法等

自已做?
你还是用别人的吧,如百度,google
源码如下:百度
<form action="http://www.baidu.com/baidu" target="_blank">
<table bgcolor="#FFFFFF"><tr><td>
<input name=tn type=hidden value=baidu>
<a href="http://www.baidu.com/"><img src="http://img.baidu.com/img/logo-80px.gif" alt="Baidu" align="bottom" border="0"></a>
<input type=text name=word size=30>
<input type="submit" value="百度搜索">
</td></tr></table>
</form>

百度网站站内检索系统
http://www.baidu.com/products/wst/1_05.html