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

MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION])

MySQL支持全文索引和搜索功能。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)

时间: 2024-11-02 21:11:30

利用MySQL内置函数实现全文搜索功能的相关文章

SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)

原文:SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页) SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅途(www.Zuowenjun.cn) --CreateDate:2015-06-02 --Function:分页获取数据 /******************/ crea

MySQL内置函数中的日期和时间函数详解

下面的例子使用了时间函数.以下询问选择了最近的 30天内所有带有date_col 值的记录: mysql> SELECT something FROM tbl_name -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col; 注意,这个询问也能选择将来的日期记录. 用于日期值的函数通常会接受时间日期值而忽略时间部分.而用于时间值的函数通常接受时间日期值而忽略日期部分. 返回各自当前日期或时间的函数在每次询问执行开始时计算一次.这

MySQL内置函数uuid和uuid_short

MySQL的uuid这个函数 简要介绍一下 用法 简单看到,这个值,每次执行都是不同的. 生成规则 第1 2 3 段是与时间有关的. time_low.time_mid.time_high_and_version转成16进制后分别对应第1 2 3段.这个时间是从1582-10-15 00:00:00.00到当前时间的100ns值.(实际上系统只能取到精确us,再乘以10).所以你短时间连续执行的话,比较可能只有第一个值在改,实际上1 2 3都可能会改变. 第4段是你启动这个MySQL后第一次执行

php利用scws实现mysql全文搜索功能的方法_php技巧

本文实例讲述了php利用scws实现mysql全文搜索功能的方法.分享给大家供大家参考.具体方法如下: scws这样的中文分词插件比较不错,简单的学习了一下,它包涵一些专有名称.人名.地名.数字年代等规则集合,可以直接将语句按这些规则分开成一个一个关键词,准确率在90%-95%之间,按照安装说明把scws的扩展放入php的扩展目录里,下载规则文件和词典文件,并在php配置文件中引用它们,就可以用scws进行分词了. 1) 修改 php 扩展代码以兼容支持 php 5.4.x 2) 修正 php

【原创】Matlab.NET混合编程技巧之直接调用Matlab内置函数

              本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新    Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 在我的上一篇文章[原创]Matlab.NET混编技巧之--找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译,就直接在C#中调用这些内置函数.本文就带你揭开这些谜团. 声明,这篇文章是需要

Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码)

原文:[原创]Matlab.NET混合编程技巧之--直接调用Matlab内置函数(附源码) 在我的上一篇文章[原创]Matlab.NET混编技巧之--找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译,就直接在C#中调用这些内置函数.本文就带你揭开这些谜团. 声明,这篇文章是需要一点点混合编程基础的,基本概念和过程要懂一点,如果能简单成功混编一个简单的计算或者绘图例子

PHP使用内置函数file_put_contents写入文件及追加内容的方法_php技巧

本文实例讲述了PHP使用内置函数file_put_contents写入文件及追加内容的方法.分享给大家供大家参考,具体如下: 以追加形式写入内容 当设置 flags 参数值为 FILE_APPEND 时,表示在已有文件内容后面追加内容的方式写入新数据: 复制代码 代码如下: <?php file_put_contents("test.txt", "This is another something.", FILE_APPEND); ?> file_put

Oracle SQL 内置函数的使用方法及结果

SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 fr

MySQL内置结构hash表的使用

最近实现的两个patch都使用到了MySQL内置的hash结构.这个结构在MySQL框架层中被多处使用,理解它可以方便代码阅读. 1. 总体 InnoDB中也有自带的HASH表, 本文中介绍的是MySQL框架层的hash表. 其定义的头文件在include/hash.h,实现位置mysys/hash.c.内部存储数据使用了动态数组DYNAMIC_ARRAY. 这个hash表实现了插入.删除.修改.查找接口,也提供了遍历接口.在打patch时会发现很好用. 2.初始化 _my_hash_init