问题:长期以来MYSQL搜索对于中文来说不太理想,InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,但是用“初级”一词在“我是一名初级开发者”搜索时是无法出现结果的,原因在于搜索是以空格来分词。因此仅能由第三方插件来完成搜索任务。在MySQL 5.7.6中我们能使用一个新的全文索引插件来处理它们:n-gram parser.

  1 安装环境,推荐使用最新的MYSQL https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-winx64.zip

  2 ngram_token_size=2 #用中文检索分词插件ngram之前,先得在MySQL配置文件里面设置他的分词大小.

    例词  '信息系统' 在设置为不同值时的分词情况

    ngram_token_size=1 : '信', '息', '系', '统' 
    ngram_token_size=2 : '信息', '息系', '系统';
    ngram_token_size=3 : '信息系', '息系统';
    ngram_token_size=4 : '信息系统';

    

    查看指定全文检索表源(仅查看分词情况,可不做,不影响索引)
    

    set global innodb_ft_aux_table='db/table';
    SELECT * FROM information_schema.`INNODB_FT_INDEX_TABLE`;

  

  3 全文索引建立

    a 新建

CREATE TABLE table(
`id` int(11) DEFAULT NULL,
`name` varchar(512) DEFAULT NULL,
`content` text,
FULLTEXT KEY idx_name(name),
FULLTEXT KEY idx_content(content) WITH PARSER ngram
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    b 修改

 ALTER TABLE `table` ADD FULLTEXT (`content`) WITH PARSER ngram;

  

  

2017MySQL中文索引解决办法 自然语言处理(N-gram parser)的更多相关文章

  1. [Linux] - CentOS中文乱码解决办法

    CentOS 7 终端中文乱码解决办法: 1.使用vim编辑locale.config文件: vim /etc/locale.conf 2.将LANG="en_US.UTF-8"修 ...

  2. Oracle导入中文乱码解决办法

    Oracle导入中文乱码解决办法 一.确保各个客户端字符集的编码同服务器字符集编码一致 1-       确定sqlplus字符集编码,如果是windows设置环境变量. 2-       确保Sec ...

  3. NetBeans中文乱码解决办法

    一.Windows下NetBeans中文乱码解决办法 找到你的Netbeans安装目录下的etc文件夹,用记事本打开netbeans.conf,找到netbeans_default_options(不 ...

  4. centos7.2中文乱码解决办法

    centos7.2 中文乱码解决办法 1.查看安装中文包: 查看系统是否安装中文语言包 (列出所有可用的公共语言环境的名称,包含有zh_CN) # locale -a |grep "zh_C ...

  5. windows下git bash中文乱码解决办法

    一.解决办法1:(直接上图) 1.在git bash下,右键 出现下图,选择options: 2.选择“Text” 3.将“Character set”设置为  UTF-8 转:windows下git ...

  6. 使用httpclient post请求中文乱码解决办法

    使用httpclient post请求中文乱码解决办法   在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码 ...

  7. mac中matplotlib不支持中文的解决办法

    参考:https://blog.csdn.net/kaizei_pao/article/details/80795377 首先查看matplotlib已加载的字体: import matplotlib ...

  8. Ajax在IE浏览器会出现中文乱码解决办法

    在AJAX浏览器来进行发送数据时,一般它所默认的都是UTF-8的编码. Ajax在IE浏览器会出现中文乱码的情况!解决办法如下 <script type="text/javascrip ...

  9. Rhythmbox中文乱码解决办法

    今天在网络上找到了一个比较好的解决Rhythmbox中文乱码的问题的方法 进入你的音乐文件夹执行如下代码: mid3iconv -e GBK *.mp3 如果没有提示多试几次,有可能系统会提示: py ...

随机推荐

  1. Java中遍历实体类(处理MongoDB)

    在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...

  2. 『MXNet』第十二弹_再谈新建计算节点

    上一节我们已经谈到了计算节点,但是即使是官方文档介绍里面相关内容也过于简略,我们使用Faster-RCNN代码中的新建节点为例,重新介绍一下新建节点的调用栈. 1.调用新建节点 参数分为三部分,op_ ...

  3. spring boot 2.0(一)权威发布spring boot2.0

    Spring Boot2.0.0.RELEASE正式发布,在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring ...

  4. php自动填充

    1.str_pad() 函数把字符串填充为新的长度. 2.str_pad(string,length,pad_string,pad_type) 参数 描述 string 必需.规定要填充的字符串. l ...

  5. 使用iText快速更新书签

    一.介绍 pdfbox基于Apache协议,商用无需开放源代码. iText基于APGL协议,打包和修改需发布源码,除非花钱买断. 二.用途 下载的电子书,有的书签是FitHeight,也就是缩放后整 ...

  6. 解决Eureka Server不踢出已关停的节点的问题

    eureka端: eureka.server.enable-self-preservation (设为false,关闭自我保护主要) eureka.server.eviction-interval-t ...

  7. [codechef July Challenge 2017] Pishty and tree

    PSHTTR: Pishty 和城堡题目描述Pishty 是生活在胡斯特市的一个小男孩.胡斯特是胡克兰境内的一个古城,以其中世纪风格的古堡和非常聪明的熊闻名全国.胡斯特的镇城之宝是就是这么一座古堡,历 ...

  8. weblogic控制台用户名密码修改

    1.记得用户名密码但想修改密码修改方法 保存后立即生效,即你退出后即能以新密码登录:但由于启动的用户名密码和登录的用户名密码是同一个,所以我们需要去修改DOMAIN_HOME/servers/serv ...

  9. Win10系列:VC++媒体播放控制3

    (5)添加视频进度条 视频进度条可以用来显示当前视频的播放进度,并可以通过拖动视频进度条来改变视频的播放进度.接下来介绍如何实现视频进度条,首先打开MainPage.xaml文件,并在Grid元素中添 ...

  10. 尚学堂java 参考答案 第八章

    一.选择题 1.BD 解析:B:Integer是对象,所以默认的应该是null对象.D使用的是自动装箱 2.A 解析:String类的对象是final型,是不能修改的,concat()方法是生成一个新 ...