原文链接 http://blog.csdn.net/manbujingxin/article/details/6656992

前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索。

假定数据表名为post,有三列:id、title、content。id是自增长序号,

title是varchar,content是text,给content添加全文索引。
mysql全文搜索有三种模式:
一、自然语言查找。这是mysql默认的全文搜索方式,sql示例:

1 select  id,title FROM post WHERE MATCH(content) AGAINST ('search keyword')

或者显式声明使用自然语言搜索方式

1 select  id,title FROM post WHERE MATCH(content) AGAINST ('search keyword' IN NATURAL LANGUAGE MODE)

由于自然语言搜索方式是默认模式,所以可以省略声明模式的“IN NATURAL LANGUAGE MODE”部分。
自然语言搜索模式的么特点:

  • 忽略停词(stopword),英语中频繁出现的and/or/to等词被认为是没有实际搜索的意义,搜索这些不会获得任何结果。
  • 如果某个词在数据集中频繁出现的几率超过了50%,也会被认为是停词,所以如果数据库中只有一行数据,不管你怎么全文搜索都不能获得结果。
  • 搜索结果都具有一个相关度的数据,返回结果自动按相关度由高到低排列
  • 只针对独立的单词进行检索,而不考虑单词的局部匹配,如搜索box时,就不会将boxing作为检索目标。

二、布尔查找。这种查找方式的特点是没有自然查找模式中的50%规则,即便有词语在数据集中频繁出现的几率超过50%,

也会被作为搜索目标进行检索并返回结果,而且检索时单词的局部匹配也会被作为目标进行检索。sql示例

1 select  id,title FROM post WHERE MATCH(content) AGAINST ('search keyword' IN BOOLEAN MODE)

三、带子查询扩展的自然语言查找。

1 select  id,title FROM post WHERE MATCH(content) AGAINST ('search keyword' IN BOOLEAN MODE WITH EXPANSION)

暂时没有明白这种模式。
在我的实际使用中还发现了以下细节:

  • 布尔查找时必须指定返回结果的排序方式,它不会像自然语言查找那样会自动将结果按相关度排序返回。
  • 即使是布尔查找,对长度小于等于3的单词也不会进行检索,因为mysql有一个系统变量FT_MIN_WORD_LE
    指定了全文检索时可接受的最小单词长度,默认值是4。.

转载于:https://www.cnblogs.com/ihongyan/p/4712259.html

【转】 Mysql全文搜索match...against的用法相关推荐

  1. Mysql全文搜索match against的用法

    全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE ...

  2. mysql全文搜索数字against_Mysql全文搜索match…against的用法

    前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...

  3. mysql函数match_Mysql全文搜索match…against的用法 | 学步园

    全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于   MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREAT ...

  4. mysql match 中文_Mysql全文搜索match against的用法

    对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE   (或 CREATE INDEX) 创建索引,这将是非常快的.将数据装载到一个已经有 FULL ...

  5. mysql用于检索的关键字_Mysql全文搜索match...against的用法

    全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于   MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREAT ...

  6. match against mysql_Mysql全文搜索match against的用法

    对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE   (或 CREATE INDEX) 创建索引,这将是非常快的.将数据装载到一个已经有 FULL ...

  7. mysql against 中文_「against的用法」Mysql全文搜索之MATCH...AGAINST的用法介绍 - seo实验室...

    against的用法 前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar ...

  8. Mysql全文搜索之MATCH...AGAINST的用法介绍

    前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...

  9. MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持

    背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.1 ...

最新文章

  1. 【Linux 线程】常用线程函数复习《一》
  2. java指针的数组_java 指针 数组的使用
  3. POJ 1719 Shooting Contest
  4. oracle模拟重叠事务,ORACLE的事务读一致性与语句读一致性
  5. Linux系统间文件双向同步搭建Unison版
  6. IE8 beta2现已正式发布!
  7. sap中查询字段长度_SAP会计科目编码的层级说明
  8. linux基本命令之stat
  9. 【Rust日报】2020-05-05:窥探Zoom, Lambda部署, slip等
  10. WiFi 桥接功能 — 基于Linux路由器
  11. 吴伯凡-认知方法论-认知中的信道与噪音
  12. 推荐测温软件SpeedFan 4.32
  13. vsCode格式化html代码
  14. cad转dxf格式文件太大,将CAD图纸文件进行转换成低版本DXF格式如何进行?
  15. 微信支付结果通知签名错误问题分析与解决办法
  16. switch-case编写分段函数
  17. PbootCMS上传文件大小限制
  18. 王者纷争服务器维护,【更新公告】秦时纷争 王者纷争 权御春秋 国战策略手游 更新公告 低折...
  19. MySQLWorkbench导出数据库生成sql文件
  20. 【Python】使用Python对pdf,svg,png等进行转换

热门文章

  1. [优秀作品]豪胆商贸公司综合管理系统
  2. 转:通过多线程为基于 .NET 的应用程序实现响应迅速的用户
  3. ldd命令 ubuntu_Linux:Ldd命令介绍及使用方法
  4. 一级造价工程师注册怎样操作?
  5. 韩顺平Java学习笔记P245对象创建流程分析P246this关键字-P250
  6. 惠普自动化测试软件官网,惠普最新测试管理工具 HP ALM 11.0 详细介绍
  7. Oracle--lpad和rpad
  8. 怀旧服转服显示请选择其他服务器,魔兽世界怀旧服角色转移服务常见问题介绍_角色转移服务常见问题解答-游戏窝...
  9. 系统之家win7 32位+64位iso旗舰版系统 v12.1
  10. 【R语言】pps采样