当前位置:首页 > 日记 > 正文

mysql全文搜索的sql命令的编写

mysql全文搜索的sql命令的编写
MySQL全文搜索,SQL编写:
比赛(COL1,COL2,…对(expr)查询扩展布尔模型| } {)
例如:
SELECT * FROM文章匹配(标题、主体)对('database);
比赛()函数执行一个自然语言搜索数据库中的一个字符串。数据库是包含在全文1套1或2列。搜索字符串作为参数对(),表中的所有行,匹配()返回一个值,是相关的,搜索字符串并在比赛中指定列的文本之间的相似性度量表()。
下面的例子更复杂。请求的返回值,同时在线根据序列相关性渐弱。要做到这一点,你应该指定匹配()两次:一个选择列表和WHERE子句中其他。这并不会造成额外的内部操作。原因是MySQL优化器注意到两个匹配()调用是相同的,只激活一个全文搜索代码。
复制代码代码如下所示:
选择id、主体、匹配
(标题、正文)反对
(安全- >的启示
作为根运行MySQL作为得分
匹配> >的文章
(标题、正文)反对
Implications ('Security - > of
运行MySQL作为root;

所以,你应该在MySQL英文全文搜索这里。
请注意一个问题。
全文搜索中将忽略一些词:
*任何一个太短的单词都会被忽略。全文搜索所能找到的单词的最小长度为4个字符。
*停止单词中的单词被忽略。
MySQL还带有查询扩展功能。这里没什么讨论。
PHP中文全文检索分析
有一个版本的MySQL支持中文全文搜索(海量MySQL中文+,GPL,但最终没有开放源码)
中文全文搜索的关键是,MySQL本身不支持CJK的分词(CJK:中国,日本,韩国)的分词。
因此
!!!如何使用PHP来模拟分词是MySQL全文索引的关键!!!!!!
汉语分词是分词中最困难的一个。没有人能完全和完美地解决它(尽管这些搜索引擎做得很好)。
复制代码代码如下所示:
/ / fcicq:下面告诉你如何PHP分词是在这里完成的。
功能dv_chinesewordsegment($str,encodingname美元= 'gbk){
静态objenc美元= null;
如果($ objenc = null){
如果(!Class_exists ('DV_Encoding')) {
require_once root_path。'inc / dv_encoding PHP。类;
}
objenc美元= dv_encoding::getencoding($ encodingname);
}
美元objenc -> strlength strlen = $($str);
returnval美元=阵();
如果($ strlen <= 1){
返回$ STR;
}
arrstopwords美元= dv_getstopwordlist();
/ / print_r($ arrstopwords);
过滤所有HTML标记
$str = preg_replace(' # | #,$str);
所有的词 / /过滤器
$str = str_replace($ arrstopwords { 'strrepl},,$str);
$str = preg_replace($ arrstopwords { 'pregrepl},,$str);
返回值

$ ARR =爆炸(,$str);
/ / fcicq:好了,下面是PHP关键字*************
foreach($ ARR达Javascript){
如果(preg_match( / ^ { x00-x7f } + $ /我为Javascript)= 1)
{ / / fcicq:都是E,不管,MySQL可以知道
returnval美元{ } = '$ Javascript;
}否则{ / / fcicq:中文和英文。
preg_match_all( /(({ a-za-z } +)/我,Javascript美元,$匹配);
如果(!空($matches)){ / / fcicq:英文部分
foreach($matches { 0 }达比赛){
returnval { } =对应美元美元;
}
}
ASCII字符
Javascript美元= preg_replace( /({ x00-x7f } +)/我,
Javascript美元); / / fcicq:,你看,剩下的是并不是所有的中国人。
美元objenc -> strlength strlen = $($ Javascript)- 1;
为($我= 0;$i < strlen美元美元;i++){
returnval美元{ } = $ objenc ->子串($ Javascript,我,2)
/ / fcicq:注意这里的函数,没有手册。
/ / fcicq:你仔细看,所有的话都分为两。
诸如数据库之类的应用程序将根据库应用程序划分为数据…
全文:全文搜索搜索
这个词不自然。
但是,当搜索时,执行同样的操作。
例如,搜索数据库相当于根据库搜索数据。
这是一个相当传统的文本搜索分词方法。
}
}
}
返回的returnval;
} / /结束功能dv_chinesewordsegment
/ / fcicq:这就是传说中的子串。我相信很多人写PHP代码比这个更好。
功能的子串($str,美元美元开始,长度= null){
如果(!is_numeric($开始)){
返回false;
}
$ strlen = strlen(str);
如果($ strlen <= 0){
返回false;
}
如果($开始< 0 | | $长度<0){
mbstrlen美元=美元-> strlength($str);
别的{ }
mbstrlen美元= $ strlen;
}
如果(!is_numeric($长度)){
$length = $mbStrLen;
} elseif($长度<0){
美元美元美元mbstrlen +长度长度= 1;
}
如果($开始0){
美元美元美元开始= mbstrlen +开始;
}
returnval美元=;
mbstart = 0美元;
mbcount = 0美元;
为($我= 0;$i < strlen美元美元;i++){
如果($ mbcount = $长度){
打破;
}
$currOrd = ord ($str{$i});
如果($ mbstart = $开始){
returnval美元= str {我};
如果($ currord > 0×7F){
returnval美元= str { $我+ 1 }。$str { $我+ 2 };
$ I = 2;
}
mbcount美元+ +;
} elseif($ currord > 0×7F){
$ I = 2;
}
mbstart美元+ +;
}
返回的returnval;
} / /结束功能的子串
插入/全文搜索word表单。一共有两个,一个topic_ft,一bbs_ft
arrtopicindex美元= dv_chinesewordsegment($话题);
如果(!空(arrtopicindex美元(美元)is_array arrtopicindex)){
topicindex美元=美元DB -> escape_string(崩溃('',arrtopicindex美元));
如果($ topicindex = = {!)
为数据库->查询(UPD吃{ $ DV } topic_ft集topicindex =)
{ }:随着topicindex美元={ })rootid美元;
别的{ }
为数据库->查询(DEL ETE从{ $ DV } topic_ft)
而随着={ })rootid美元;
}
}
}

这就是所谓的MySQL全文搜索分词,MySQL不会是分词,而php则会。
这是过时的方法,但很实用。

相关文章

Word2007插入特殊字符的方法

Word2007插入特殊字符的方法

方法,特殊字符,电脑软件,1,单击要插入特殊字符的位置。 2、在插入;在标签上;符号;在组中,单击符号,然后单击另一个符号; 3、点击特殊字符标签。 4,单击要插入的字符,然后单击插入;。 5,点击关闭;…

linux下OpenMP多线程编程实例

linux下OpenMP多线程编程实例

编程实例,多线程,电脑软件,linux,OpenMP,评论:本文主要介绍linux系统下OpenMP多线程编程的例子,需要的朋友可以参考一下。 重点语法: 复制代码代码如下所示: #是 # pragma omp并行 # pragma omp减少(+:变量) # pragma omp临界 / /锁 { } # pragma…

不能设置Windows7系统定期GB2312字

不能设置Windows7系统定期GB2312字

字体,系统,设置,方案,电脑软件,点评:Office 2003型XP字体GB2312。Windows 7的Office 2007为选定的显示是相同的字体,字体是Windows 7 GB2312是化妆品更帅 Windows 7系统已经出来了,2个设置,使用得很好,配置要求和vista差不多,但是启动速度快得多…

MySQL双向加密与解密使用详解

MySQL双向加密与解密使用详解

解密,加密,双向,详解,电脑软件,如果你使用的是MySQL数据库,你需要在应用程序中保存您的密码或其他敏感重要信息的好机会。保护这些数据免受黑客攻击或窃听是一个非常关注的问题,因为你既不允许未经授权的人员使用或破坏应用程序,而且还保证你…

Win8如何启用和禁用其他电源计划在

Win8如何启用和禁用其他电源计划在

计划,系统,启用,电源,电脑软件,点评:有利于计算机性能的提高,使系统合理地添加电源方案。这里我们介绍了在系统中启用附加电源计划的方法,感兴趣的朋友可以参考一下。 电源计划是硬件和系统设置(如显示、睡眠等)的集合,用来管理计算机如何使用电…

如何选择合适的mysql存储引擎

如何选择合适的mysql存储引擎

存储引擎,如何选择,合适,电脑软件,mysql,MySQL支持几种存储引擎作为不同类型的表的处理器。MySQL存储引擎包括处理事务安全表和处理非事务安全表的引擎。 非事务表的MyISAM管理。它提供了高速存储和检索,以及全文检索capabilities.myisam是…

win7如何调整和设置的时间让电脑的

win7如何调整和设置的时间让电脑的

调整,设置,时间,更准确,电脑软件,点评:看电脑上上课的时间,所以电脑时间的准确是绝对必要的。在这里,我将介绍如何调整和设置计算机时间,以使其更准确。 当许多学生在宿舍等候上课时,他们会打开电脑,消磨时间。当然,他们也会在电脑上看时间去上课…

如何在Word2007中设置默认字体

如何在Word2007中设置默认字体

默认,字体,设置,如何在,电脑软件,设置默认字体确保每个新打开的文档设置你选择的字体设置为默认,默认的字体应用于活动模板(模板):一个或多个文件,包括结构和工具的形式完成文件的样式和页面布局等元素。例如,Word模板可以生成一个单一的文件,和Fr…

gdonkey.exe的功能是什么该gdonkey

gdonkey.exe的功能是什么该gdonkey

查询,功能,过程,电脑软件,gdonkey,点评:gdonkey.exe是电驴的P2P文件共享的2000点计划的一部分 进程文件:gdonkey或gdonkey.exe 进程名称:eDonkey2000对等的工具 过程类别:安全风险的过程 英文描述: gdonkey.exe是一个过程,属于eDonkey网络工具…

QQ搞笑人物签名:不要糟蹋青春这个词

QQ搞笑人物签名:不要糟蹋青春这个词

你已经,这个词,开始了,秋天,人物,我昨天杀了百度,在他死之前,他问我为什么,我说,你知道得太多了。 谁和我一样,吃我喜欢的东西,待在一起,最后吃。 虽然我没有腰,没有一个是白色的,没有一个是细长的,没有一个是惊人的,但是呢,但是呢,你认为我至少比他们…

IP处理功能inet_aton()和inet_ntoa()使

IP处理功能inet_aton()和inet_ntoa()使

使用说明,功能,电脑软件,IP,inet_ntoa,MySQL IP到int的转换函数 选择inet_aton(IP)从table_name; 网络地址: 192.168.33.123 每个值的最大值不交叉255,即十六FF,而两个字节正好是255的最大值。 这样,您就可以用32位的塑料来保存地址了。 一百九十…

wiseupdt.exe的过程是怎样的

wiseupdt.exe的过程是怎样的

的是,过程,是怎样,电脑软件,wiseupdt,Review: a brief introduction to the wiseupdt.exe process 进程文件:wiseupdt或wiseupdt.exe 进程名称:Grokster Wiseupdt 过程类别:安全风险的过程 英文描述: wiseupdt.exe是Grokster文件共享工具的更…