问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何利用MySQL内置函数实现全文搜索功能

发布网友 发布时间:2022-04-22 08:56

我来回答

2个回答

热心网友 时间:2022-04-29 18:57

MySQL中的全文索引类型FULLTEXT的索引。  FULLTEXT 索引仅可用于 MyISAM 表;他们可以从CHAR、VARCHAR或TEXT列中作为CREATE TABLE语句的一部分被创建,或是随后使用ALTER TABLE 或 CREATE INDEX被添加。对于较大的数据集,将你的资料输入一个没有FULLTEXT索引的表中,然后创建索引,其速度比把资料输入现有FULLTEXT索引的速度更为快。
  全文搜索同MATCH()函数一起执行。
  mysql CREATE TABLE articles (
  -  id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
  -  title VARCHAR(200),
  -  body TEXT,
  -  FULLTEXT (title,body)  - );  Query OK, 0 rows affected (0.00 sec)
  mysql INSERT INTO articles (title,body) VALUES
  - ('MySQL Tutorial','DBMS stands for DataBase ...'),
  - ('How To Use MySQL Well','After you went through a ...'),
  - ('Optimizing MySQL','In this tutorial we will show ...'),
  - ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
  - ('MySQL vs. YourSQL','In the following database comparison ...'),
  - ('MySQL Security','When configured properly, MySQL ...');
  Query OK, 6 rows affected (0.00 sec)
  Records: 6 Duplicates: 0 Warnings: 0
  mysql SELECT * FROM articles
  - WHERE MATCH (title,body) AGAINST ('database');
  +----+-------------------+------------------------------------------+
  | id | title       | body                   |
  +----+-------------------+------------------------------------------+
  | 5 | MySQL vs. YourSQL | In the following database comparison ... |
  | 1 | MySQL Tutorial  | DBMS stands for DataBase ...       |
  +----+-------------------+------------------------------------------+
  2 rows in set (0.00 sec)
  MATCH()函数对于一个字符串执行资料库内的自然语言搜索。一个资料库就是1套1个或2个包含在FULLTEXT内的列。搜索字符串作为对AGAINST()的参数而被给定。对于表中的每一行, MATCH() 返回一个相关值,即, 搜索字符串和 MATCH()表中指定列中该行文字之间的一个相似性度量。
  在默认状态下, 搜索的执行方式为不区分大小写方式。然而,你可以通过对编入索引的列使用二进制排序方式执行区分大小写的全文搜索。 例如,可以向一个使用latin1字符集的列给定latin1_bin 的排序方式,对于全文搜索区分大小写。
  如上述所举例子,当MATCH()被用在一个 WHERE 语句中时,相关值是非负浮点数。零相关的意思是没有相似性。相关性的计算是基于该行中单词的数目, 该行中独特子的数目,资料库中单词的总数,以及包含特殊词的文件(行)数目。
  对于自然语言全文搜索,要求MATCH() 函数中命名的列和你的表中一些FULLTEXT索引中包含的列相同。对于前述问讯, 注意,MATCH()函数(题目及全文)中所命名的列和文章表的FULLTEXT索引中的列相同。

热心网友 时间:2022-04-29 20:15

数索引顾名思义就是加给字段加了函数的索引,这里的函数也可以是表达式。所以也叫表达式索引。
MySQL 5.7 推出了虚拟列的功能,MySQL8.0的函数索引内部其实也是依据虚拟列来实现的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
新装修怎样去除异味又快又有效,洋葱和土肥皂都试过了,都没用。 新装修的店面通风多久 新店装修通风需要多久? 新装修的店面多久多久没有异味 “新店装修后臭味能持续多长时间”_百 ... 我09年的国三柴油货车,到19年7月以后还能审吗? iebook 怎样让背景音乐从第一页开始放而不是封面开始 iebook超级精灵的背景音乐和页面插入音乐,可以分别控制吗? 用iebook做电子杂志的时候怎么从头到尾设同一首音乐 iebook支持导入多首音乐吗?可不可以对每页进行音乐设置? IEBOOK 往回翻页时上一页的背景音乐怎么样才能从头开始播放而不是接... 如何用iebook连续几页不间断播放同一首音乐? 开骨灰盒店在哪里办营业执照 有没有土豆收获机器? 小i捕鱼3d破解版那里有 批处理VBS高手进来下,一个搜索my.exe并且发送到桌... 我知道的zigbee产品有TI公司的CC2530还有DIGI公司... 土豆播种机多少钱一台 开骨灰盒店赚钱不 进my.yunos.com网页怎么查找手机位置? 什么是华硕DIGI+ VRM数字供电技术 请问如何用Digi公司的zigbee模块组建一个网状网络... 我的网页上多了个搜索栏,my网蜜,怎么删呀? 骨灰盒店对隔壁其他行业有影响吗? 新型马铃薯收获机亮相西海固,新型马铃薯机有何特点? DIGI的zigbee模块配置 我想开个骨灰盒店。起名字什么名字好呢 农田水利概念的股票有哪些 我想问一下土豆粉机为什么做土豆粉的时候面团不往... 隔壁有家骨灰盒店,对我餐饮店有影响吗? 土豆粉怎么描述 水十条概念股有哪些 Zigbee模块哪家好? mysql的搜索引擎有什么不同 怎么创办骨灰盒店 砂锅土豆粉汤料配方 Zigbee的迷惑? 为什么在D盘里找不到My Documents这个文件夹,“搜... mysql 以中文内容作为搜索条件时,搜不到的记录的... 什么是有机土豆 想开一家骨灰盒店不知加盟哪家好 my...... 如何mysql在一个数据库中搜索一个值 zigbee模块怎样采集数据 有机土豆有什么营养价值? php语言简单搜索mysql数据库,不显示数据 各种汽车报价 搜索引擎方法技巧 开骨灰盒店怎样.一般选什么地段比较好 中国春节知识知多少 超频时ASUS DIGI+ VRM该怎么设置 掌中通钱包里的钱可以用吗