通过MySQL内置全文检索实现中文的相关检索

2016-01-29 14:49 26 1 收藏

通过MySQL内置全文检索实现中文的相关检索,通过MySQL内置全文检索实现中文的相关检索

【 tulaoshi.com - MySQL 】

<通过MySQL内置全文检索实现中文的相关检索

关键字:MySQL 全文检索 全文索引 中文分词 二元分词 区位码 相似度

/**
* @author : walkerlee
* @copyright : www.neatstudio.com | www.walkerlee.net
*/

转载请保留以上信息。

注:本文使用的MySQL版本为:MySQL 4.0.x

在MySQL4中,是已经开始支持全文检索(索引)的了。但是只是对英文支持全文检索。
由于英文在书写上的特殊性,使得分词算法相对中文来说,简单得多。一般来说,我们可以通过单词与单词之间的空格,以及标点符号来完成这个分词过程。
但是就中文来说,就没有那么简单。MySQL无法对中文做出正确的分词,假设有如下英文句子:

引用:

来源:https://www.tulaoshi.com/n/20160129/1494349.html

延伸阅读
标签: MySQL mysql数据库
在 MySQL 下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在。本人以前也曾遇到过类似问题,经详细阅读 MySQL 的 Manual ,发现可以有一种方法很方便的解决并得到满意的结果。 例子: ·希望通过“标题”对新闻库进行检索,关键字可能包含是中英文,如 下 S...
标签: SQLServer
  CONTAINSTABLE 语法 我们通常在 FROM 子句中使用 CONTAINSTABLE ,就象这样:SELECT * FROM table_name,CONTAINTABLE(fulltext_table,fullText_column,'search condition') WHERE ......。 CONTAINSTABLE 在查询方式上与 CONTAINS 几乎一样,所以就不用赘述了。CONTAINSTABLE 返回的是符合查询条件的表,在 SQL 语句中我们可以把它当作...
标签: SQLServer
因为项目需要,需要对上传的文件内容进行查询。通过MSDN了解到Windows索引服务可以实现对文件的全文检索,并可以通过SQL Server进行查询。项目将这两者结合,实现对上传文件的全文检索的解决方案。 方案概要: 1. 改变文件存储时的文件名 2. 配置索引服务器,并将索引服务器与MS SQL Server关联。 3. 修改SQL语句,将进行全文查询语...
标签: SQLServer
  基本知识 1. SQL Server7 的 DeskTop 版中没有全文本检索。 2. 一个表只能有一个全文本检索。 3. 被检索的表必须有单列的唯一索引。 4. 全文本的索引存储在文件系统中,而非数据库中。 5. 更新全文本索引的过程比常规索引要耗时,而且也不象常规索引那样可以由数据库系统立即更新。 6. 全文本索引包含在全文本目录( Full-Text Catalog )...
标签: SQLServer
  CONTAINS 语法 我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents')。 我们通过例子来学习,假设有表 students,其中的 address 是全文本检索的列。 1. 查询住址在北京的学生 SELECT student_id,student_name FROM students WHERE CONTAINS( address, 'bei...

经验教程

369

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部