美文网首页mysql
02全文本搜索

02全文本搜索

作者: 我只是有点困_52b7 | 来源:发表于2020-04-09 23:37 被阅读0次

1、启用全文本搜索

FULLTEXT对指定列进行索引

CREATE TABLE productnotes
(
  note_id     int             NOT NULL AUTO_INCREMENT,
  prod_id    char(10)    NOT NULL,
  note_date  datetime  NOT NULL,
  note_text   text          NULL,
  PRIMARY KEY(note_id),
  FULLTEXT(note_text)
)ENGINE=MyISAM;

不要在导入数据时使用FULLTEXT。可以先导入数据,在修改表结构增加FULLTEXT

2、进行全文本搜索

select note_text
from productnotes
where match(note_text) against('rabbit')

搜索结果根据文本匹配良好程度排序数据。

select note_text,match(note_text) against('rabbit')
from productnotes

3、扩展搜索

select note_text
from productnotes
where match(note_text) against('rabbit' with query expansion)

根据rabbit搜索出相关的数据行,我们可以根据此数据行的结果查询出更多的数据。

在使用查询扩展是,MySQL对数据和索引进行两遍扫描来完成搜索:

  • 首先,进行一个基本的全文本搜索,找出与搜索条件匹配的所有航
  • 其次,MySQL检查这些匹配行并选择所有有用的词
  • 再其次,MySQL再次进行全文本搜索,这次不仅使用原来的条件,而且还是用使用所有有用的词

4、布尔文本搜索

select ntoe_text
from productnotes
where match(note_text) against('heavy' in boolean mode);

此全文本搜索检索包含词heavy的所有行,其中使用了关键字 in boolean mode,但是实际上没有指定布尔操作符,因此,结果与没有指定布尔方式结果相同。

  • 匹配包含heavy但不包含任意以rope开始的词的行
select ntoe_text
from productnotes
where match(note_text) against('heavy -rope*' in boolean mode);

全文本布尔操作符

布尔操作符 说明
+ 包含,词必须存在
- 排除,词必须不出现
> 包含,而且增加等级值
< 包含,而且减少等级制
() 把词组成表达式(允许这些子表达式作为一个组被包含、排除、排列等)
~ 取消一个词的排序值
* 词尾的通配符
"" 定义一个短语(与单个词的列表不一样,它匹配整个短语以便包含或排除这个短语)

相关文章

  • 02全文本搜索

    1、启用全文本搜索 FULLTEXT对指定列进行索引 不要在导入数据时使用FULLTEXT。可以先导入数据,在修改...

  • Linux常用指令---grep(转)

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全...

  • 文本搜索

    搜索包含关键字的行 会将所有包含关键字的行均输出,有时候只需要输出匹配的最后几行: 当然,我们可以在grep 后面...

  • 文本搜索

    To perform text search, MongoDB uses a text index and the...

  • 本地工具

    文本编辑器:EditPlus 文本编辑器,常用于文本编辑、转码、搜索、Hex查看。尤其是文本搜索,可以查询所有子文...

  • mongodb文本搜索

    这几天做app,绕不开搜索,在没有看mongodb文档的情况下,胡思乱想了半个小时该怎么处理文本搜索,没想到官网对...

  • 全文本搜索

    全文本搜索 使用全文本(fulltext)搜索,MySQL不需要分别查看每个行,不需要分析和处理每个词。MySQL...

  • Mongodb文本搜索

    近日用mongodb做文本搜索遇到一个问题。针对国外的人的姓名搜索,之前的中文名完全匹配的搜索不能用了。 比如我们...

  • Linux命令 - grep

    grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 1、基本用法,在文本中搜索一...

  • iOS --- searchBar模糊搜索

    模糊搜索的实现思路:当搜索框开始编辑时对搜索框中的文本与后台给的资源相对比,包含搜索文本的展示在tableview...

网友评论

    本文标题:02全文本搜索

    本文链接:https://www.haomeiwen.com/subject/owvkmhtx.html