免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2603 | 回复: 5
打印 上一主题 下一主题

如何实现类似google的多关键词查询(多关键词用空格或其它符号间隔),并求最高效率 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-21 17:01 |只看该作者 |倒序浏览
如何实现类似google的多关键词查询,要求查询效率最高
当空格或+号时是 and 运算
当-号时是 非 运算
当|号时是 or 运算

分解关键词后,用哪种运算方式效率最高呢?
1. 用N个like 条件
2. 用in(a,b,c)
3. 用全文检索技术
4. 用正则表达式

===================================
假如有一个表
CREATE TABLE `article` (
        `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
        `title` VARCHAR( 255 ) NOT NULL ,
        `descript` TEXT NOT NULL ,
        `content` LONGTEXT NOT NULL ,
        PRIMARY KEY ( `id` ) ,
        INDEX ( `title` ) ,
        FULLTEXT (`title` ,`descript` ,`content`)
);

目的:
要查询 key_a,key_b,key_c 在 title,descript,content(这三个字段视为一个整体) 中同时存在或排除某关键词

如 客户端输入"key_a key_b key_c"(情况一)或 "key_a key_b -key_c"(情况二)
我们针对这两种情况该如何写SQL语句呢?

===================================


集思广益,请大家给出具体的程序段及函数,谢谢。

论坛徽章:
0
2 [报告]
发表于 2006-02-22 00:52 |只看该作者
这个是你的应用程序的算法了!和mysql基本没有太大的关系

论坛徽章:
0
3 [报告]
发表于 2006-02-22 14:10 |只看该作者
除了程序,就是where

论坛徽章:
0
4 [报告]
发表于 2006-02-24 02:15 |只看该作者
是全文检索技术最快吗?

论坛徽章:
0
5 [报告]
发表于 2006-03-10 00:03 |只看该作者
问题又来了,全文检索不支持中文呀

论坛徽章:
0
6 [报告]
发表于 2006-03-13 19:00 |只看该作者
對,小弟也經已試了,用UTF-8編碼的資料庫作UTF-8的搜尋,還是沒法用全文檢索來搜尋中文。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP