• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Mysql全文搜索match against的用法

Mysql全文搜索match against的用法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了全文搜索,match,against等相关知识,希望本文的分享对您有所帮助

全文检索在 MySQL 中就是一个 FULLTEXT 类型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、 VARCHAR 或 TEXT 列上创建

对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 创建索引,这将是非常快的。将数据装载到一个已经有 FULLTEXT 索引的表中,将是非常慢的。
1.使用Mysql全文检索fulltext的先决条件
表的类型必须是MyISAM
建立全文检索的字段类型必须是char,varchar,text

2.建立全文检索先期配置
由于Mysql的默认配置是索引的词的长度是4,所以要支持中文单字的话,首先更改这个.
*Unix用户要修改my.cnf,一般此文件在/etc/my.cnf,如果没有找到,先查找一下find / -name 'my.cnf'
在 [mysqld] 位置内加入:
ft_min_word_len = 2
其它属性还有
ft_wordlist_charset = gbk
ft_wordlist_file = /home/soft/mysql/share/mysql/wordlist-gbk.txt
ft_stopword_file = /home/soft/mysql/share/mysql/stopwords-gbk.txt
稍微解释一下:
ft_wordlist_charset 表示词典的字符集, 目前支持良好的有(UTF-8, gbk, gb2312, big5)
ft_wordlist_file 是词表文件, 每行包括一个词及其词频(用若干制表符或空格分开,消岐专用)
ft_stopword_file 表示过滤掉不索引的词表, 一行一个.
ft_min_word_len 加入索引的词的最小长度, 缺省是 4, 为了支持中文单字故改为 2

3.建立全文检索
在建表中用FullText关键字标识字段,已存在的表用 ALTER TABLE (或 CREATE INDEX) 创建索引
CREATE fulltext INDEX index_name ON table_name(colum_name);

4.使用全文检索
在SELECT的WHERE字句中用MATCH函数,索引的关键词用AGAINST标识,IN BOOLEAN MODE是只有含有关键字就行,不用在乎位置,是不是起启位置.
SELECT * FROM articles WHERE MATCH (tags) AGAINST ('旅游' IN BOOLEAN MODE);

5.详细的说明请参数Mysql官方网站

这是Mysql 5.1的,不过4.X也可以做为参考,基本一置.我用的就是Mysql 4.1.

MySQL全文索引与中文分词总结及一般的关键词搜索流程

mysql 全文检索 中文分词

支持中文的MySQL 5.1+ 全文检索分词插件

家用一下搜索引擎就会发现,分词的情况只是出现在当整词命中为0的情况下。
而具体怎样分词,大家可以参考一下baidu搜索试验结果:

·如果搜“徐祖宁宁”,结果为“徐祖”+“宁宁”。(搜人名的情况下,它可能有一个百家姓词典,自动将姓后第一个字归前)
·搜“徐宁愿”,结果为“徐宁愿”。(说明“宁愿”归“徐”所有。同上。因为徐是姓。)
·搜“徐祖宁愿”,结果为“徐祖”+“宁愿”。(因为“宁愿”是词,故“徐”只带“祖”。)
·搜“徐祖宁高”,结果为“徐祖宁”。(因为“宁高”不是关键字,所以“宁”归前词所有。而“高”可能因为是单字,为提高前词搜索效率故被省略。)

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql全文搜索 sql命令的写法
  • MySQL基础教程10 — 函数之全文搜索功能
  • Mysql全文搜索match against的用法
  • mysql全文搜索 sql命令的写法

相关文章

  • 2018-12-05oracle数据库下统计专营店的男女数量的语句
  • 2018-12-05Oracle性能究极优化 下
  • 2018-12-05MYSQL初学者命令行使用指南
  • 2018-12-05如何利用CMD连接本机mysql数据库
  • 2017-05-11mysql不重启的情况下修改参数变量
  • 2017-05-11修改Innodb的数据页大小以优化MySQL的方法
  • 2018-12-05SQL Sever 2005 Express 安装失败解决办法
  • 2017-05-11关于SQL嵌套的误解分析
  • 2018-12-05Oracle数据仓库的分层管理器解决方案开发者网络Oracle
  • 2018-12-05mysql密码忘记的解决方法(图)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle一个用户如何访问其它用户的表应用指南
    • SQLServer 中的死锁说明
    • phplib中的一些基本语法和函数
    • Mysql原先内容不改变并在后面增加内容的sql语句详解
    • mysql数据库索引类型有哪几种?建立方法和优缺点
    • 使用Rotate Master实现MySQL 多主复制的实现方法
    • 浅谈 5.7.13 核心架构设计
    • mysql跨数据库复制表(在同一IP地址中)示例
    • SQL*Plus常用指令
    • mysql的增删改查常用语法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有