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

mysql全文搜索:sql的写法

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

本篇关键词:搜索全文MATCHmysql
黑客防线网安网讯:首先,大家先去下载一份dvbbs.php beta1的代码,解压后先抛开php代码,找出你的mysql手册,如果没有手册那么就直接看下面的实例操作吧! mysql全文搜索,sql的写法: MATCH (col1,col2,…) AGA...

首先,大家先去下载一份dvbbs.php beta1的代码解压后先抛开php代码找出你的mysql手册,如果没有手册那么就直接看下面的实例操作吧!

mysql全文搜索,sql的写法:

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

比如:

SELECT * FROM articles WHERE MATCH (title,body) AGAINST (’database’);

MATCH()函数对于一个字符串执行资料库内的自然语言搜索一个资料库就是1套1个或2个包含在FULLTEXT内的列搜索字符串作为对 AGAINST()的参数而被给定。对于表中的每一行, MATCH() 返回一个相关值,即, 搜索字符串和 MATCH()表中指定列中该行文字之间的一个相似性度量。

下面的例子则更加复杂。询问返回相关值,同时对行按照相关性渐弱的顺序进行排序。为实现这个结果,你应该两次指定 MATCH(): 一次在 SELECT 列表中而另一次在 WHERE子句中。这不会引起额外的内务操作,原因是MySQL 优化程序注意到两个MATCH()调用是相同的,从而只会激活一次全文搜索代码。

以下为引用的内容:

mysql> SELECT id, body, MATCH
(title,body) AGAINST
-> (’Security implications of
running MySQL as root’) AS score
-> FROM articles WHERE MATCH
(title,body) AGAINST
-> (’Security implications of
running MySQL as root’);
 
所以,到这里你应该会mysql 英文全文搜索了.

请注意一个问题.

一些词在全文搜索中会被忽略:

* 任何过于短的词都会被忽略。 全文搜索所能找到的词的默认最小长度为 4个字符。

* 停止字中的词会被忽略。

mysql还自带查询扩展功能.这里不做过多讨论.

下面进行php中文全文搜索的分析

曾经有一个版本的mysql支持中文全文搜索(海量 mysql chinese+,说是GPL但是最终没有开源)

中文全文搜索的关键是在分词上.mysql本身不支持cjk的分词(cjk:chinese,japanese,korean),

所以

!!!!****如何用php模拟分词是mysql全文索引的关键****!!!!

中文分词是语言分词中最困难的.现在也没有人能够彻底完美的解决(虽然这些搜索引擎做的都还不错.)

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

footer  footer  footer  footer