zoukankan      html  css  js  c++  java
  • mysql 全文搜索的FULLTEXT

    FULLTEXT索引

      创建FULLTEXT索引语法

         创建table的时候创建fullText索引      

    CREATE TABLE table_name(
     column1 data_type, 
            column2 data_type,
            column3 data_type,
     …
    PRIMARY_KEY(key_column),
    FULLTEXT key key_name (column1,column2,..)
    );
    

         在已存在的table上面创建fullText索引

    ALTER TABLE  table_name  
    ADD FULLTEXT(column_name1, column_name2,…)
    

         使用create index 语句创建fullText索引

    CREATE FULLTEXT INDEX index_name
    ON table_name(idx_column_name,...)
    

       删除全文搜索列

    alter table tablename drop index indexname;
    

     FULLText索引的使用

      注意事项

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

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

      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);   
    

        

  • 相关阅读:
    WPF样式统一之DevExpress设置窗体,控件为Office风格
    vs报错 "多步操作产生错误。请检查每一步的状态值"
    WPF属性之理解附加属性
    WPF国际化方式1之资源文件
    EntityFramework经典数据访问层基类——增删改查
    一个sh脚本 同时运行 多个sh脚本
    安装OpenIMSCore的SIP测试客户端 utcimsclient
    No module named 'paddle.fluid'
    “/usr/local/lib/libosipparser2.so.7: could not read symbols: Invalid operation” 异常解决
    把ubuntu自带的高gcc版本降到低版本(如gcc 3.4)的方法
  • 原文地址:https://www.cnblogs.com/loveyixiang/p/6021168.html
Copyright © 2011-2022 走看看