当前位置: 代码网 > it编程>数据库>Mysql > MySQL全文检索的实现示例

MySQL全文检索的实现示例

2024年05月27日 Mysql 我要评论
不是所有的数据表都支持全文检索 mysql支持多种底层数据库引擎,但是并非所有的引擎支持全文检索,目前最常用引擎是是myisam和innodb;前者支持全文检索,后者不支持。booolean模式操作符

不是所有的数据表都支持全文检索 mysql支持多种底层数据库引擎,但是并非所有的引擎支持全文检索 ,目前最常用引擎是是myisam和innodb;前者支持全文检索,后者不支持。

booolean模式操作符

操作符含义
+必须有
-必须不包含
>包含对应关键字的排名靠前
<包含对应关键字的排名靠后
~取反()
*放在词尾 类似通配符
" "引号中间作为一个完整的值处理

实验: 

表productnotes :

1.查询包含rabbit的行,并按照相关性排序

mysql> select note_text
    -> from productnotes
    -> where match(note_text) against('rabbit');
+----------------------------------------------------------------------------------------------------------------------+
| note_text                                                                                                            |
+----------------------------------------------------------------------------------------------------------------------+
| customer complaint: rabbit has been able to detect trap, food apparently less effective now.                         |
| quantity varies, sold by the sack load. all guaranteed to be bright and orange, and suitable for use as rabbit bait. |
+----------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.01 sec)

 2.显示每一条的相关性值

mysql> select note_text,
    ->  match(note_text) against('rabbit') as match_rank
    -> from productnotes;
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+
| note_text                                                                                                                                                 | match_rank         |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+
| customer complaint:
sticks not individually wrapped, too easy to mistakenly detonate all at once.
recommend individual wrapping.                          |                  0 |
| can shipped full, refills not available.
need to order new can if refill needed.                                                                          |                  0 |
| safe is combination locked, combination not provided with safe.
this is rarely a problem as safes are typically blown up or dropped by customers.         |                  0 |
| quantity varies, sold by the sack load.
all guaranteed to be bright and orange, and suitable for use as rabbit bait.                                      | 1.5905543565750122 |
| included fuses are short and have been known to detonate too quickly for some customers.
longer fuses are available (item fu1) and should be recommended. |                  0 |
| matches not included, recommend purchase of matches or detonator (item dtntr).                                                                            |                  0 |
| please note that no returns will be accepted if safe opened using explosives.                                                                             |                  0 |
| multiple customer returns, anvils failing to drop fast enough or falling backwards on purchaser. recommend that customer considers using heavier anvils.  |                  0 |
| item is extremely heavy. designed for dropping, not recommended for use with slings, ropes, pulleys, or tightropes.                                       |                  0 |
| customer complaint: rabbit has been able to detect trap, food apparently less effective now.                                                              | 1.6408053636550903 |
| shipped unassembled, requires common tools (including oversized hammer).                                                                                  |                  0 |
| customer complaint:
circular hole in safe floor can apparently be easily cut with handsaw.                                                                |                  0 |
| customer complaint:
not heavy enough to generate flying stars around head of victim. if being purchased for dropping, recommend anv02 or anv03 instead.   |                  0 |
| call from individual trapped in safe plummeting to the ground, suggests an escape hatch be added.
comment forwarded to vendor.                            |                  0 |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+
14 rows in set (0.00 sec)

3.有heavy 但是没有rope

mysql> select note_text
    -> from productnotes
    -> where match(note_text)
    ->  against('heavy -rope*' in boolean mode);
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| note_text                                                                                                                                               |
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| customer complaint:
not heavy enough to generate flying stars around head of victim. if being purchased for dropping, recommend anv02 or anv03 instead. |
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

到此这篇关于mysql 全文检索的文章就介绍到这了,更多相关mysql 全文检索内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com