MySQL的Full-Text Search

本文介绍MySQL自带的全文搜索功能,包括创建全文搜索表、插入数据、使用全文搜索查询语句等操作,并详细说明了MySQL全文搜索的支持特性及限制条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

创建一个全文搜索表:
[code]
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title, body)
) ENGINE=MyISAM;
[/code]

插入几条数据:
[code]
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 ...');
[/code]

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

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可以自定义保留字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值