- 论坛徽章:
- 0
|
如何实现类似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语句呢?
===================================
集思广益,请大家给出具体的程序段及函数,谢谢。 |
|