【转】 Mysql全文搜索match...against的用法
原文链接 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的用法相关推荐
- Mysql全文搜索match against的用法
全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE ...
- mysql全文搜索数字against_Mysql全文搜索match…against的用法
前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...
- mysql函数match_Mysql全文搜索match…against的用法 | 学步园
全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREAT ...
- mysql match 中文_Mysql全文搜索match against的用法
对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 创建索引,这将是非常快的.将数据装载到一个已经有 FULL ...
- mysql用于检索的关键字_Mysql全文搜索match...against的用法
全文检索在 MySQL 中就是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREAT ...
- match against mysql_Mysql全文搜索match against的用法
对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 创建索引,这将是非常快的.将数据装载到一个已经有 FULL ...
- mysql against 中文_「against的用法」Mysql全文搜索之MATCH...AGAINST的用法介绍 - seo实验室...
against的用法 前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar ...
- Mysql全文搜索之MATCH...AGAINST的用法介绍
前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...
- MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持
背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.1 ...
最新文章
- 【Linux 线程】常用线程函数复习《一》
- java指针的数组_java 指针 数组的使用
- POJ 1719 Shooting Contest
- oracle模拟重叠事务,ORACLE的事务读一致性与语句读一致性
- Linux系统间文件双向同步搭建Unison版
- IE8 beta2现已正式发布!
- sap中查询字段长度_SAP会计科目编码的层级说明
- linux基本命令之stat
- 【Rust日报】2020-05-05:窥探Zoom, Lambda部署, slip等
- WiFi 桥接功能 — 基于Linux路由器
- 吴伯凡-认知方法论-认知中的信道与噪音
- 推荐测温软件SpeedFan 4.32
- vsCode格式化html代码
- cad转dxf格式文件太大,将CAD图纸文件进行转换成低版本DXF格式如何进行?
- 微信支付结果通知签名错误问题分析与解决办法
- switch-case编写分段函数
- PbootCMS上传文件大小限制
- 王者纷争服务器维护,【更新公告】秦时纷争 王者纷争 权御春秋 国战策略手游 更新公告 低折...
- MySQLWorkbench导出数据库生成sql文件
- 【Python】使用Python对pdf,svg,png等进行转换
热门文章
- [优秀作品]豪胆商贸公司综合管理系统
- 转:通过多线程为基于 .NET 的应用程序实现响应迅速的用户
- ldd命令 ubuntu_Linux:Ldd命令介绍及使用方法
- 一级造价工程师注册怎样操作?
- 韩顺平Java学习笔记P245对象创建流程分析P246this关键字-P250
- 惠普自动化测试软件官网,惠普最新测试管理工具 HP ALM 11.0 详细介绍
- Oracle--lpad和rpad
- 怀旧服转服显示请选择其他服务器,魔兽世界怀旧服角色转移服务常见问题介绍_角色转移服务常见问题解答-游戏窝...
- 系统之家win7 32位+64位iso旗舰版系统 v12.1
- 【R语言】pps采样