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);
        使用布尔文本搜索,上式的搜索表达式被丰富了,+必须出现该词,-必须不包含该词,*词尾截断符,>增加词优先级,<减小词优先级。
  • 相关阅读:
    Ubuntu 14.04设置开机启动脚本的方法
    python 筛选
    分段压缩
    ubuntu 16.04 启用root用户方法
    Ubuntu 16.04 设置MySQL远程访问权限
    [分享]在ubuntu9.10下实现开机自动登录并运行自己的图形程序
    ubuntu live cd修复grub引导项
    安装dcm4chee-arc-light-5.4.1-mysql步骤
    数据库学习--wildfly配置postgreSQL数据源
    wildfly配置PostgreSQL数据源
  • 原文地址:https://www.cnblogs.com/ladawn/p/8591330.html
Copyright © 2011-2022 走看看