MySQLFull-Text Search功能学习摘要

全文搜索三种模式:

  1. 自然语言模式(Natural Language Full-Text Searches)
  2. 布尔模式(Boolean Full-Text Searches)
  3. 查询扩展模式(Full-Text Searches with Query Expansion)

使用全文搜索方法:

  1. #创建表格
    CREATE TABLE FT_Supportable_Table (name VARCHAR(40), content TEXT) ENGINE = MyISAM;  
  2. #填充数据
    LOAD DATA LOCAL INFILE 'FT_Supportable_Table.txt' INTO TABLE FT_Supportable_Table;  
  3. #编制索引
    ALTER TABLE FT_Supportable_Table
       ADD FULLTEXT (name),  
       ADD FULLTEXT (content),  
       ADD FULLTEXT (name, content); 
  4. #中文全文检索解决方案
        大体思想都差不多:
        1. 对插入的要建全文索引的中文数据进行分词;
        2. 将原始数据和分词后的数据都存入数据库中,并以某种方式建立联系;
        3. 在存储分词数据的字段上建立FULLTEXT索引;
        4. 查询时以SELECT...MATCH...AGAINST的方式在分词字段上搜索,将搜到的行通过前面建立的联系找到原始数据行并返回。   
  5. 使用全文搜索查询语句
    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
  }

参考文档:

  1. 官方文档:http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html
  2. 中文分词:http://baike.baidu.com/view/19109.htm

 

发表评论