zoukankan      html  css  js  c++  java
  • FULLTEXT INDEX全文索引

    给现有的wxinfo表的sourceUrl 字段创建全文索引

    ALTER TABLE wxinfo
    ADD FULLTEXT INDEX sourceUrl (sourceUrl)

    创建全文索引前:

    SELECT * FROM wxinfo WHERE sourceUrl LIKE '%查询字符串%'

    创建全文索引后:

    SELECT * FROM wxinfo WHERE MATCH(sourceUrl) AGAINST('查询字符串')

      删除全文索引

    alter table tablename drop index indexname;

     

    注意事项

        1、mysql默认的全文检索的字符长度为4,使用:SHOW VARIABLES LIKE 'ft_min_word_len' ;可查看设置的检索长度。可修改mysql的my.ini 更改最小字符长度,

           如在my.ini添加配置  项 ft_min_word_len=1,如果查询的字符串包含停止词,那么该停止词将会被忽略。

        2、MySQL规定全文搜索中被搜索的单词所在的行数大于等于被搜索的所有行数的一半时候,就将被搜索单词作为Common word,即不被显示。

        3:如果可能,请尽量先创建表并插入所有数据后再创建全文索引,而不要在创建表时就直接创建全文索引,因为前者比后者的全文索引效率要高。

      1. --创建wxinfo 
      2. CREATE TABLE wxinfo (
      3.     id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
      4.     sourceUrl  TEXT,
      5.     FULLTEXT (sourceUrl) --在sourceUrl列上创建全文索引
      6. );
     

    FULLTEXT使用语法: http://www.lao8.org/article_1602/MATCH_AGAINST_mysql

    -- 查找product_name,description均包含Lenovo的记录
    SELECT * FROM product WHERE MATCH(product_name,description) AGAINST('Lenovo')
    
    --  + 表示AND,即必须包含。- 表示NOT,即不包含。
    SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('+apple -banana' IN BOOLEAN MODE);   
    
    --  apple和banana之间是空格,空格表示OR,即至少包含apple、banana中的一个。
    SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('apple banana' IN BOOLEAN MODE);  
    
    --  必须包含apple,但是如果同时也包含banana则会获得更高的权重。
    SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('+apple banana' IN BOOLEAN MODE);  
    
    --   ~ 是我们熟悉的异或运算符。返回的记录必须包含apple,但是如果同时也包含banana会降低权重。但是它没有 +apple -banana 严格,因为后者如果包含banana压根就不返回。
    SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('+apple ~banana' IN BOOLEAN MODE); 
    
    --返回同时包含apple和banana或者同时包含apple和orange的记录。但是同时包含apple和banana的记录的权重高于同时包含apple和orange的记录。
    SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('+apple +(>banana <orange)' IN BOOLEAN MODE);

    网址:http://www.365mini.com/

    -----------------------------------------------------------------------------

  • 相关阅读:
    [基础规范]JavaBeans规范
    leetcode 114.Flatten Binary Tree to Linked List (将二叉树转换链表) 解题思路和方法
    sql 分组取每组的前n条或每组的n%(百分之n)的数据
    D3js-API介绍【中】
    微信公众平台开发 一 账号类别与申请
    Apple Swift编程语言新手教程
    iOS中xib与storyboard原理,与Android界面布局的异同
    Scala入门到精通——第十五节 Case Class与模式匹配(二)
    使用IDA破解TraceMe.exe
    21行python代码实现拼写检查器
  • 原文地址:https://www.cnblogs.com/Alwaysbecoding/p/6690339.html
Copyright © 2011-2022 走看看