MySQL必知必会-16MySQL布尔文本搜索
来源:互联网 发布:网络用语2017最新数字 编辑:程序博客网 时间:2024/06/06 09:30
提供关于如下内容细节:
要匹配的词
要排斥的词(如果某行包含这个词,则不返回该行,即使它包含其他指定的词也是如此)
排列提示(指定某些词比其他词更重要,更重要的词等级更高)
表达式分组
另外一些内容
即使没有FULLTEXT索引也可以使用,但是这是一种非常缓慢的操作
最简单的例子:
SELECT
note_text
FROM
productnotes
WHERE
MATCH (note_text) AGAINST ('heavy' IN BOOLEAN MODE);
使用了关键字IN BOOLEAN MODE,但实际上没有制定布尔操作符,虽然例子与没有指定布尔方式的结果相同,但其行为有一个重要的差别。
匹配包含heavy但不包含任意以rope开始的词的行
SELECT
note_text
FROM
productnotes
WHERE
MATCH (note_text) AGAINST (
'heavy -rope*' IN BOOLEAN MODE
);
-rope*明确指示MySQL排除包含rope*(任何以rope开始的词,包括ropes)的行。
-排除一个词,而*是截断操作符(可理解为词尾的一个通配符)
全文本布尔操作符
+ 包含,词必须存在
- 排除,词必须不出现
> 包含,而且增加等级值
< 包含,且减少等级指
() 把词组成子表达式(允许这些子表达式作为一个组被包含、排除、排列等)
~ 取消一个词的排序值
* 词尾的通配符
"" 定义一个短语(与单个词列表不一样,它匹配整个短语以便包含或排除这个短语)
SELECT
note_text
FROM
productnotes
WHERE
MATCH (note_text) AGAINST (
'+rabbit +bait' IN BOOLEAN MODE
);
匹配包含词rabbit和bait的行
SELECT
note_text
FROM
productnotes
WHERE
MATCH (note_text) AGAINST (
'rabbit bait' IN BOOLEAN MODE
);
和上一个例子不同,这里匹配包含rabbit和bait中至少一个词的行。
SELECT
note_text
FROM
productnotes
WHERE
MATCH (note_text) AGAINST (
'"rabbit bait"' IN BOOLEAN MODE
);
匹配短语rabbit bait
SELECT
note_text
FROM
productnotes
WHERE
MATCH (note_text) AGAINST (
'>rabbit <carrot' IN BOOLEAN MODE
);
匹配rabbit或carrot,增加前者的等级,降低后者的等级。
SELECT
note_text
FROM
productnotes
WHERE
MATCH (note_text) AGAINST (
'+safe +(<combination)' IN BOOLEAN MODE
);
匹配次safe和combination,降低后者的等级。
排列而不排序,
在布尔方式中,不按等级制降序排序返回的行。
全文本搜索的使用说明
索引全文数据时,短词被忽略且从索引中排除。何为短语:那些具有3个或3个以下字符的词(如果需要,这个数目可以更改)
MySQL带有一个内建的非用词(stopword)列表,这些词在索引全文本数据时总是被忽略。如果需要,可以覆盖这个列表
许多词出现的频率很高,搜索它们没有用处(返回太多结果)因此MySQL规定了一条50%规则,如果一个词出现在50%以上的行中,则将它作为一个非用词忽略。50%规则不用于IN BOOLEAN MODE
如果表中的行数少于3行,则全文本搜索不返回结果(因为每个词或者不出现,或者只是出现在50%的行中)
忽略词中的单引号。例如don't索引为dont
0 0
- MySQL必知必会-16MySQL布尔文本搜索
- 56.笔记 MySQL学习——布尔模式全文搜索
- MySQL 5.6 布尔类型
- mysql数据库存储布尔值
- MySQL必知必会-15MySQL全文搜索
- 选择合适的 MySQL 布尔数据类型
- 关于mysql布尔类型的存储
- MySQL中如何使用布尔类型
- mysql 导出文本
- mySql 文本字段长度
- mysql操作文本数据
- mysql导入文本数据
- mysql 存储长文本
- Mysql大文本类型
- mysql 文本处理函数
- 文本文档导入mysql
- MySql文本处理函数
- BooleanQuery布尔搜索
- 对于java关键字volatile,和transient 的理解
- WebWork
- 为你的网站添加触控,实现自定义手势
- hdu 5317 RGCDQ
- Swift3.0 / swift2.3中dispatch_group的使用
- MySQL必知必会-16MySQL布尔文本搜索
- noi-8173-密码翻译
- M-13
- BZOJ 4292: [PA2015]Równanie
- Content-Type:application/x-www-form-urlencoded; charset=UTF-8 设置方法 针对AFN或者是原生
- 课堂总结,延伸
- 终于开通博客了
- JavaScript特性(attribute)、属性(property)和样式(style)
- 紫书动规 例题9-6 UVA