MySQL Full-Text Search(转)

MySQL自带有全文搜索功能: http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

创建一个全文搜索表:
  1. CREATE TABLE articles (   
  2.   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,   
  3.   title VARCHAR(200),   
  4.   body TEXT,   
  5.   FULLTEXT (title, body)   
  6. ) ENGINE=MyISAM;  
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title, body)
) ENGINE=MyISAM;


插入几条数据:
  1. INSERT INTO articles (title,body) VALUES   
  2.   ('MySQL Tutorial','DBMS stands for DataBase ...'),   
  3.   ('How To Use MySQL Well','After you went through a ...'),   
  4.   ('Optimizing MySQL','In this tutorial we will show ...'),   
  5.   ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),   
  6.   ('MySQL vs. YourSQL','In the following database comparison ...'),   
  7.   ('MySQL Security','When configured properly, MySQL ...');  
INSERT INTO articles (title,body) VALUES
('MySQL Tutorial','DBMS stands for DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
('MySQL vs. YourSQL','In the following database comparison ...'),
('MySQL Security','When configured properly, MySQL ...');


使用全文搜索查询语句:
  1. SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('database');  
SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('database');


MySQL Full-Text Search Functions还支持Boolean模式查询和Query Expansion

MySQL Full-Text Search有一些限制:
1,仅支持MyISAM tables
2,支持大部分多字节字符集,对Unicode只支持utf8不支持ucs2
3,对中文和日语支持不好,因为没有word delimiters
4,若支持在一个单独表中使用多字符集,则所有 FULLTEXT索引中的列 必须使用同样的字符集和库。
5,MATCH()列列表必须同该表中一些 FULLTEXT索引定义中的列列表完全符合,除非MATCH()在IN BOOLEAN MODE
6,对AGAINST() 的参数必须是一个常数字符串

MySQL Full-Text Search的配置
全文变量t_min_word_len、 ft_max_word_len指定搜索字的长度
ft_stopword_file可以自定义保留字

转载于:https://www.cnblogs.com/gaowen1210/archive/2009/03/31/1426116.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值