MySQLFull-Text Search功能学习摘要
全文搜索三种模式:
- 自然语言模式(Natural Language Full-Text Searches)
- 布尔模式(Boolean Full-Text Searches)
- 查询扩展模式(Full-Text Searches with Query Expansion)
使用全文搜索方法:
- #创建表格
CREATE TABLE FT_Supportable_Table (name VARCHAR(40), content TEXT) ENGINE = MyISAM;
- #填充数据
LOAD DATA LOCAL INFILE 'FT_Supportable_Table.txt' INTO TABLE FT_Supportable_Table;
- #编制索引
ALTER TABLE FT_Supportable_Table
ADD FULLTEXT (name),
ADD FULLTEXT (content),
ADD FULLTEXT (name, content);
- #中文全文检索解决方案
大体思想都差不多:
1. 对插入的要建全文索引的中文数据进行分词;
2. 将原始数据和分词后的数据都存入数据库中,并以某种方式建立联系;
3. 在存储分词数据的字段上建立FULLTEXT索引;
4. 查询时以SELECT...MATCH...AGAINST的方式在分词字段上搜索,将搜到的行通过前面建立的联系找到原始数据行并返回。
- 使用全文搜索查询语句
SELECT...MATCH...AGAINST
MATCH (col1,col2,...) AGAINST (expr [search_modifier])
search_modifier: {
IN NATURAL LANGUAGE MODE
| IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION
| IN BOOLEAN MODE
| WITH QUERY EXPANSION
}
参考文档:
- 官方文档:http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html
- 中文分词:http://baike.baidu.com/view/19109.htm