zoukankan      html  css  js  c++  java
  • mysql的全文索引支持中文,且可以以自然语言处理方式

    #######################

       1).MySQL中的全文索引是FultLeXT类型的索引。
      2).全文索引只能用于InnoDB或MyISAM表,只能为CHAR、VARCHAR、TEXT列创建。
      3).在MySQL 5.7.6中,MySQL提供了支持中文、日文和韩文(CJK)的内置全文ngram解析器,以及用于日文的可安装MeCab全文解析器插件
      4).当创建表时,可以在CREATE TABLE语句中给出FULLTEXT索引定义,或者稍后使用ALTER TABLE或CREATE INDEX添加该定义。
      5).对于大型数据集,将数据加载到没有FULLTEXT索引的表中然后创建索引要比将数据加载到具有现有FULLTEXT索引的表中快得多。
    全文索引的三种类型:
    1. 自然语言搜索将搜索字符串解释为自然语言中短语。
    2. 布尔全文搜索
    3. 查询扩展搜索

    建表时添加:

    CREATE TABLE `movie` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `data_id` bigint(20) DEFAULT NULL,
      `license_data_id` varchar(48) DEFAULT NULL,
      `cp_data_id` varchar(64) NOT NULL,
      `create_time` datetime NOT NULL,
      `update_time` datetime NOT NULL,
      `publish_time` datetime DEFAULT NULL,
      `publish_status` smallint(5) unsigned NOT NULL,
      `title` varchar(170) NOT NULL,
       PRIMARY KEY (`id`),
       fulltext key `idx_title` (`title`) /*!50100 WITH PARSER `ngram` */ 
    ) ENGINE=InnoDB AUTO_INCREMENT=24298231 DEFAULT CHARSET=utf8mb4

    建表后添加添加:

    alter table `short_movie`   add fulltext index `idx_title`(`title`) with parser `ngram`;
    alter  table apple add fulltext index  title_body_index (title,body) with parser ngram;

    支持中文等亚洲语种的内置全文ngram解析器:with parser ngram ,如果是英文,则不需要

    ######################

    igoodful@qq.com
  • 相关阅读:
    Redis学习(一)认识并安装redis
    并发编程(七)线程如何优雅地终止
    并发编程(六)Object类中线程相关的方法详解
    并发编程(五)线程同步
    并发编程(四)Thread类详解
    并发编程(三)线程池
    并发编程(二)Java中的多线程
    Python学习————作业
    Python学习————作业(面向对象)
    Python学习————面向对象和面向过程
  • 原文地址:https://www.cnblogs.com/igoodful/p/14987408.html
Copyright © 2011-2022 走看看