想做一个搜索数据库的引擎,怎么做啊?

myboll 2004-12-02 09:55:29

比如,输入深圳闪盘,他会按“深圳闪盘”、"深圳"和"闪盘"来搜索,

而不是只搜索"深圳闪盘"或搜索"深"、"圳"、"闪"、"盘"。
...全文
260 点赞 收藏 28
写回复
28 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
myboll 2004-12-06
刚才看了网友的帖子,我感觉也是个问题,在这里称为第四条

4: 如果表中 profile 字段为TEXT,检索很费时间,怎样才能减少检索len(不同的字段)>150时的时间
回复
何鲁青 2004-12-06
学习
回复
jdh2010 2004-12-06
学习中……
回复
myboll 2004-12-06
精确查询问题如下:
  3:精确的匹配问题:比如查询关键字是"北京 电子 中管村",如何只显示如下记录:记录的指定几个FIELDS(如:title,name,profile)包含"北京""电子""中管村",三个关键字一个都不能少

意思是说:在title,name,profile中只要能找全"北京""电子""中管村"三个关键字,就显示.(当然包括,仅仅profile中只要能找全"北京""电子""中管村"三个关键字也显示....)
回复
myboll 2004-12-06
截取字符串?当然都截取了
但是这样按这些字符串根据字你要求排序呢???
回复
myboll 2004-12-04
??????????????????????
回复
myboll 2004-12-04
哦多了一行strSubKey=Mid(strKey,i,lngSubKey)
回复
myboll 2004-12-04
奶奶的雄,如果输入纯英文字咱也能搞定(如下),如果混合输入怎么办呢(我上面提的问题)

strSubKey = Split(strKey, " ")
For i = 0 To UBound(strSubKey)
strSubKey=Mid(strKey,i,lngSubKey)
strNew1=strNew1 & " or Name like '%" & strSubKey(i) & "%'"
strNew2=strNew2 & " or salekeywords like '%" & strSubKey(i) & "%'"
Next

如果混合输入怎么办呢(我上面提的问题)
回复
Juniorman 2004-12-04
路过
学习....
回复
myboll 2004-12-04
就是说,我怎么才能知道查询输入的是英文字?????????

如果查询关键字里面是这样“北京电子conputer”,应该按照“北京电子computer”、“北京”、“电子”、“computer”来查询。

如果查询关键字里面是这样“China Super conputer”,应该按照“China Super conputer”,"china","super","computer"来查询



大家帮忙啊!!!!!!!
回复
myboll 2004-12-04
解决上面我说的排序问题,现在又来了新问题(悲惨啊!!!!!!!!!),如下:

当我输入 "china game" 时,百度和GOOGLE都自动认为他是英语字,并分别按"china"、“game”来查询,而我写的只能按“ch”,“in”等两个字母查询。

就是说,一律当作汉字来处理了。

怎么才能输入“北京电子世界”时,按照“北京电子世界”、“北京”、“电子”、“世界”来查询(已经实现),输入"beijing dian zi shi jie"却可以按照"beijing","dian","zi","shi","jie"来查询(没有实现~~~~~~~~~~~~~~~~~~~~~~~~~~)。

大虾请不吝赐教。
在下先谢谢了。
回复
sun94510451 2004-12-04
要截取字符串
回复
myboll 2004-12-04
模糊查询问题总结如下:(大家帮忙啊)

  1:排序问题:如何让匹配字数多的关键字的记录排在记录的上面,例如查询关键字里面是这样"北京电子",那么应该先显示含有"北京电子"的记录,然后显示含有"北京"的记录,然后显示含有"电子"的纪律.

  2:关键字判断问题:如果查询关键字里面是这样“北京电子computer”,应该按照“北京电子computer”、“北京”、“电子”、“computer”来查询。(conputer不要拆开).

精确查询问题如下:
  上面两个问题依然存在
  3:精确的匹配问题:比如查询关键字是"北京 电子 中管村",如何只显示如下记录:记录的指定几个FIELDS(如:title,name,profile)包含"北京""电子""中管村",三个关键字一个都不能少.

回复
lishuai818 2004-12-04
路过~~~进来歇息一会
回复
federer8250 2004-12-04
关注中
回复
myboll 2004-12-04
现在问题又来了:

当我输入"北京电子时" 是按照"北京电子","北京","电子"模糊查找,用OR 上面已经实现了.

要精确查找怎么办?比如输入"北京 电子 清华 物理系",现在以空格split,然后找出完全符合"北京","电子","清华","物理系"条件,而且数据库里面需要两个字段来匹配,怎么实现????

下面的OR简单换成 and 也不行啊??
strSubKey = Split(strKey, " ")
For i = 0 To UBound(strSubKey)
strNew1=strNew1 & " and Name like '%" & strSubKey(i) & "%'"
strNew2=strNew2 & " and salekeywords like '%" & strSubKey(i) & "%'"
strNew3=strNew3 & " and title like '%" & strSubKey(i) & "%'"
Next

因为单字段和子串之间是and的关系,而3个字段之间是OR的关系啊,怎么搞定来实现精确查询呢??
(name like '%" & strSubKey(0) & "%' and name like '%" & strSubKey(1) & "%') or (salekeywords like '%" & strSubKey(0) & "%' and salekeywords like '%" & strSubKey(1) & "%') OR (title like '%" & strSubKey(0) & "%' and title like '%" & strSubKey(1) & "%')

有没有简单点的发方法??????????????
回复
tigerhu76 2004-12-04
学习中……
回复
sys9933 2004-12-03
study
回复
myboll 2004-12-03
有兴趣学习、参考 或 指教 的朋友到下面地址一试:

http://www/myboll.com/sz

真诚期待你的建议。嘿嘿排序拦着我了
到底如何可以先按匹配字符串排序,然后按order by 后面的fields来排序呢???????
回复
myboll 2004-12-03
比如:搜索"北京电子"
按理说第一个要显示含有"北京电子"条目
然后显示含有"北京"和"电子"的条目

谁能解决啊,大峡们??
嘿嘿,现在智能搜索啦,亮色显示啦,快速分页啦全都搞定,但是在模糊查询时怎么让匹配长的字符串显示也靠前呢?

我用google搜索"美宝网",第一条显示为含有美宝网的条目,下面才是含美宝、网之类的条目,他是怎么实现的呢
回复
加载更多回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-12-02 09:55
社区公告
暂无公告