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

    仅在MyISAM引擎中支持全文本搜索

    1.创建表时启用全文本搜索

    e.g. CREATE TABLE productnotes

    (

      note_id  int   NOT NULL AUTO_INCREMENT,

      prod_id  char(10)  NOT NULL,

      note_text  text  NULL,

      PRIMARY KEY(note_id),

      FULLTEXT(note_text)

    )ENGINE=MyISAM

    这里FULLTEXT一个列,也可以指定多个列,用逗号隔开

    2.索引之后,使用Match()和Against()执行全文搜索

    Match()指定要搜索的列,其值必须与FULLTEXT()定义中的相同

    Against()指定要使用的搜索表达式

    e.g.SELET note_text FROM productnotes

      WHERE Match(note_text) Against('rabbit')

    3.查询扩展,找出相关的结果

    e.g.SELET note_text FROM productnotes

      WHERE Match(note_text) Against('rabbit' WITH QUERY EXPANSION)

    4.布尔文本搜索

    全文本布尔操作符

    +  包含,词必须存在

    -  排除,词必须不出现

    >  包含,而且增加等级

    <  包含,而且减少等级

    ()  把词组成子表达式

    ~  取消一个词的排序值

    *  词尾的通配符

    ""  定义一个短语

    e.g.

    SELECT note_text FROM productnotes

    WHERE Match(note_text) Against('heavy -rope*' IN BOOLEAN MODE)

    匹配包含heavy但不包含任意以rope开始的词的行

  • 相关阅读:
    发送短信/邮件/打电话 code(转)
    如何学习算法
    堆和栈的区别
    2010 baidu笔试
    关于TableView中图片的延时加载(转)
    sqlite + UITableView 实现iPhone大数据浏览
    2010 Google中国笔试试题
    海量数据处理方法总结(转)
    IPhone WebApp 设计开发工具与资源(转)
    DynamicDataSet
  • 原文地址:https://www.cnblogs.com/zhu-tingting/p/7588233.html
Copyright © 2011-2022 走看看