zoukankan      html  css  js  c++  java
  • 全文本搜索

    定义:
            全文本搜素是MyISAM存储引擎才具有的功能,主要针对长文本进行良好程度搜索。它的主要功能大概有:快速高效地搜索指定列,而且能提供一种智能化的结果,有查询扩展搜索和布尔文本搜索功能。
     
    使用方法:
    (1)启动全文本搜索:在创建表时,加入FULLTEXT(字段),例子如下:
    CREATE TABLE productor
    (
      note_id int               NOT NULL,
      prod_name char(10)        NOT NULL,
      note_data datatime        NOT NULL,
      note_text text            NULL,
      PRIMARY KEY(note_id)
      FULLTEXT(note_text)
    )ENGINE=MyISAM;
    在定义FULLTEXT索引列后,MYSQL会自动对其进行维护,在数据库变更后自动更新。
     
    (2)进行全文本搜索:在select中的where语句中,加入Match(指定列字段)和Aginst(搜索表达式)。例子如下:
    SELECT note_text
    FROM productor
    WHERE Match(note_text) Aginst('rabbit'); 
    传给Match的列字段必须与FULLTEXT中的列字段相同,而且全文本搜索不区分大小写,返回结果按照良好程度排序(如rabbit先出现的行优先级高)
     
    (3)使用查询扩展搜索:在Against的搜索表达式后,加入WITH QUERY EXPANSION。这样的话,能搜索出与表达式相关的结果,而非精确搜索。
    SELECT note_text
    FROM productor
    WHERE Match(note_text) Against('rabbit' WITH QUERY EXPANSION);
     使用查询扩展,增加了得到的返回结果行数,使得一些与rabbit相关的行也被搜索出来。
     
    (4)使用布尔文本搜索:在Against的搜索表达式后,加入IN BOOLEAN MODE。这样的话,能丰富搜索表达式,如增加要排斥的词,词优先级等。
    SELECT note_text
    FROM productor
    WHERE Match(note_text) Against('+(>rabbit) +(<success) -rope*' IN BOOLEAN MODE);
        使用布尔文本搜索,上式的搜索表达式被丰富了,+必须出现该词,-必须不包含该词,*词尾截断符,>增加词优先级,<减小词优先级。
  • 相关阅读:
    转!idea 破解版 安装
    原!!自动备份 发布脚本
    原!linux脚本统计
    转!!mybatis xml 传值 if test判断
    转!mysql备份与还原数据库
    转!mysql 命令行下 通过DELIMITER临时改变语句分隔符 执行存储过程
    原!统计文件 包含关键字 数量
    原!mysql存储过程 批量导入数据
    转!!Linux 里的 2>&1 究竟是什么
    原!linux 监控 jar定时任务 挂了重启 脚本
  • 原文地址:https://www.cnblogs.com/ladawn/p/8591330.html
Copyright © 2011-2022 走看看