MySQL数据库全文搜索_MySQL数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

MySQL数据库全文搜索

作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0

本篇关键词:搜索全文数据库
黑客防线网安网讯:  全文索引在 MySQL 中是一个FULLTEXT类型索引。FULLTEXT索引用于MyISAM表,可以在CREATE TABLE时或之后使用ALTER TABLE或CREATE INDEX在CHAR、VARCHAR或TEXT列上创建。对于大的数据库,将...

  全文索引在 MySQL 中是一个FULLTEXT类型索引FULLTEXT索引用于MyISAM表可以在CREATE TABLE时或之后使用ALTER TABLE或CREATE INDEX在CHAR、VARCHAR或TEXT列上创建对于大的数据库将数据装载到一个没有FULLTEXT索引的表中,然后再使用ALTER TABLE(或CREATE INDEX) 创建索引,这将是非常快的。将数据装载到一个已经有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 VALUES
  -> (NULL,'MySQL Tutorial', 'DBMS stands for DataBase ...'),
  -> (NULL,'How To Use MySQL Efficiently', 'After you went through a ...'),
  -> (NULL,'Optimising MySQL','In this tutorial we will show ...'),
  -> (NULL,'1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
  -> (NULL,'MySQL vs. YourSQL', 'In the following database comparison ...'),
  -> (NULL,'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()对照一个文本集(包含在一个FULLTEXT索引中的一个或多个列的列集)执行一个自然语言搜索一个字符串。搜索字符串做为AGAINST()的参数被给定。搜索以忽略字母大小写的方式执行。对于表中的每个记录行,MATCH()返回一个相关性值。即,在搜索字符串与记录行在MATCH()列表中指定的列的文本之间的相似性尺度。

  当MATCH()被使用在一个WHERE子句中时 (参看上面的例子),返回的记录行被自动地以相关性从高到底的次序排序。相关性值是非负的浮点数字。零相关性意味着不相似。相关性的计算是基于:词在记录行中的数目、在行中唯一词的数目、在集中词的全部数目和包含一个特殊词的文档(记录行)的数目。

  它也可以执行一个逻辑模式的搜索。这在下面的章节中被描述。

  前面的例子是函数MATCH()使用上的一些基本说明。记录行以相似性递减的顺序返回。

  下一个示例显示如何检索一个明确的相似性值。如果即没有WHERE也没有ORDER BY子句,返回行是不排序的。

mysql> SELECT id,MATCH (title,body) AGAINST ('Tutorial') FROM articles;
+----+-----------------------------------------+
| id | MATCH (title,body) AGAINST ('Tutorial') |
+----+-----------------------------------------+
| 1 |            0.64840710366884 |
| 2 |                    0 |
| 3 |            0.66266459031789 |
| 4 |                    0 |
| 5 |                    0 |
| 6 |                    0 |
+----+-----------------------------------------+

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-9286-1.html
网站维护教程更新时间:2012-03-20 17:17:31  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer