文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql全文搜索fulltext

2024-04-02 19:55

关注
mysql> select * from t2;
+------+------+----------------------------+
| a    | b    | c                          |
+------+------+----------------------------+
|    1 | aa   | aa11111111111111111111111  |
|    2 | bb   | bb222222222222222222222222 |
+------+------+----------------------------+
2 rows in set (0.00 sec)


mysql> 


--此处测试字符少于4个并且数据只有2行,搜索不到任何记录
mysql> select match(c) against('bb') from t2;
+------------------------+
| match(c) against('bb') |
+------------------------+
|                      0 |
|                      0 |
+------------------------+
2 rows in set (0.00 sec)


mysql> insert into t2 values(3,'bb cc','cc33333333333333333');
Query OK, 1 row affected (0.00 sec)


mysql> commit;
Query OK, 0 rows affected (0.00 sec)


mysql> select match(b) against('bb') from t2;
+------------------------+
| match(b) against('bb') |
+------------------------+
|                      0 |
|                      0 |
|                      0 |
+------------------------+
3 rows in set (0.00 sec)


mysql> 
mysql> 
mysql> 
mysql> insert into t2 values(4,'dd','dd33333333333333333');
Query OK, 1 row affected (0.00 sec)


mysql> insert into t2 values(5,'ee','ee33333333333333333');
Query OK, 1 row affected (0.00 sec)


mysql> insert into t2 values(6,'ff','ff33333333333333333');
Query OK, 1 row affected (0.00 sec)


mysql> insert into t2 values(7,'g','gg33333333333333333');
Query OK, 1 row affected (0.00 sec)


mysql> insert into t2 values(8,'h','hh43333333333333333');
Query OK, 1 row affected (0.00 sec)


mysql> insert into t2 values(9,'ii','ii33333333333333333');
Query OK, 1 row affected (0.00 sec)


mysql> insert into t2 values(10,'jj','jj33333333333333333');
Query OK, 1 row affected (0.00 sec)


mysql> 
mysql> 
mysql> commit;
Query OK, 0 rows affected (0.00 sec)


mysql> select match(b) against('bb') from t2;
+------------------------+
| match(b) against('bb') |
+------------------------+
|                      0 |
|                      0 |
|                      0 |
|                      0 |
|                      0 |
|                      0 |
|                      0 |
|                      0 |
|                      0 |
|                      0 |
+------------------------+
10 rows in set (0.00 sec)


--大于4个字符可以搜索出来
mysql> insert into t2 values(10,'kkkkkwq','kkkkk adfsdf');
Query OK, 1 row affected (0.00 sec)


mysql> select match(c) against('kkkkk') from t2;
+---------------------------+
| match(c) against('kkkkk') |
+---------------------------+
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|        2.2508163452148438 |
+---------------------------+
11 rows in set (0.00 sec)


mysql> select * from t2 where match(c) against('kkkkk');
+------+---------+--------------+
| a    | b       | c            |
+------+---------+--------------+
|   10 | kkkkkwq | kkkkk adfsdf |
+------+---------+--------------+
1 row in set (0.00 sec)


mysql> select * from t2 where match(b) against('kkkkk');
Empty set (0.01 sec)


mysql> update t2 set b='kkkkk' where a=10;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0


mysql> select * from t2 where match(b) against('kkkkk');
+------+-------+---------------------+
| a    | b     | c                   |
+------+-------+---------------------+
|   10 | kkkkk | jj33333333333333333 |
|   10 | kkkkk | kkkkk adfsdf        |
+------+-------+---------------------+
2 rows in set (0.00 sec)


--默认自然语言,搜索结果按相关度排序,此处查询结果为相关度
mysql> select b,match(b) against('kkkkk') from t2;
+-------+---------------------------+
| b     | match(b) against('kkkkk') |
+-------+---------------------------+
| aa    |                         0 |
| bb    |                         0 |
| bb cc |                         0 |
| dd    |                         0 |
| ee    |                         0 |
| ff    |                         0 |
| g     |                         0 |
| h     |                         0 |
| ii    |                         0 |
| kkkkk |         1.486977219581604 |
| kkkkk |         1.486977219581604 |
+-------+---------------------------+
11 rows in set (0.00 sec)


mysql> select * from t2 where match(b) against('kkkkk');
+------+-------+---------------------+
| a    | b     | c                   |
+------+-------+---------------------+
|   10 | kkkkk | jj33333333333333333 |
|   10 | kkkkk | kkkkk adfsdf        |
+------+-------+---------------------+
2 rows in set (0.00 sec)


--自然语言搜索
mysql> select * from t2 where match(b) against('kkkkk' in natural language mode);
+------+-------+---------------------+
| a    | b     | c                   |
+------+-------+---------------------+
|   10 | kkkkk | jj33333333333333333 |
|   10 | kkkkk | kkkkk adfsdf        |
+------+-------+---------------------+
2 rows in set (0.00 sec)


--布尔型搜索
mysql> select * from t2 where match(b) against('kkkkk' in boolean mode);
+------+-------+---------------------+
| a    | b     | c                   |
+------+-------+---------------------+
|   10 | kkkkk | jj33333333333333333 |
|   10 | kkkkk | kkkkk adfsdf        |
+------+-------+---------------------+
2 rows in set (0.01 sec)


--布尔型只包括1和0
mysql> select b,match(b) against('kkkkk' in boolean mode) from t2;
+-------+-------------------------------------------+
| b     | match(b) against('kkkkk' in boolean mode) |
+-------+-------------------------------------------+
| aa    |                                         0 |
| bb    |                                         0 |
| bb cc |                                         0 |
| dd    |                                         0 |
| ee    |                                         0 |
| ff    |                                         0 |
| g     |                                         0 |
| h     |                                         0 |
| ii    |                                         0 |
| kkkkk |                                         1 |
| kkkkk |                                         1 |
+-------+-------------------------------------------+
11 rows in set (0.00 sec)


mysql> 


--多列搜索同一单词为 match(col1,col2) against('word'),
--一列搜索多个单词,match(col) against('word1 word2')
--布尔型搜索与自然语言搜索区别:1,自然按相关度排序,布尔不是,2,对于布尔型搜索,50%规则不起作用
--布尔型两个功能,against里(即搜索的单词)可有+ -号,+表示有。-表示没有,比如 +word1 -word2表示有单词word1但没有word2
--全文搜索参数,ft_min_word_len和ft_max_word_len,搜索单词的最小长度和最大长度
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯