如何用mysql全文索引(检索的最小单位是词而不是字符)对字符进行查找(重点:分词:数据库中建立分词字段)

ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下: 阿里云折扣服务器

http://www.sqlite.org/fts3.html
SQLite官方测试中,50多万条数据用LIKE '%keyword%'模糊搜索耗时22.5秒,用MATCH 'keyword’全文搜索仅耗时0.03秒,比模糊搜索快749倍.
FULLTEXT能利用索引进行查询,速度肯定要比LIKE模糊搜索快得多.
MySQL5.6.4后的InnoDB支持中文全文检索.
https://dev.mysql.com/doc/refman/5.6/en/innodb-fulltext-index.html
比如要实现对自己博客的所有文章进行全文搜索:
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
content TEXT,
article_fc TEXT,
FULLTEXT idx (article_fc)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入文章时,对标题title和正文content这两个字段进行SCWS中文分词并用空格分隔后存入一个用于全文搜索的字段比如article_fc,该字段要求建立FullText全文索引.
用户搜索时,先用SCWS对输入进行分词比如获得关键词word1和word2,然后用MATCH AGAINST语句对进行全文搜索:
SELECT * FROM articles WHERE MATCH(article_fc) AGAINST(‘word1 word2’);

article_fc字段所在的表也可以和标题正文所在的文章表分开,查出后连接文章表读出标题正文即可.
SCWS是马明练hightman开发的一个PHP PECL中文分词扩展,提供有词典.如果不能安装PECL扩展,作者还提供了一个PHP实现的中文分词库PSCWS:
http://www.xunsearch.com/scws/
不想用数据库的FULLTEXT,可以试试SCWS作者马明练开发的开源中文搜索引擎XunSearch:
http://www.cloud-sun.com/view/product
【性能劲爆】XunSearch 单库最多支持 40 亿条数据,在 5 亿网页大约 1.5TB 的数据中检索时间不超过 1 秒(非缓存)。
【简单易用】前端是使用脚本语言 PHP 编写的开发工具包。API 简单清晰,开发难度极低,提供全中文的示例代码、文档、辅助脚本工具等。
【功能丰富】除支持基础的自定义分词、字段检索、布尔搜索外,还直接支持用户急需的相关搜索、拼音搜索、搜索建议等专业功能。

如何用mysql全文索引(检索的最小单位是词而不是字符)对字符进行查找(重点:分词:数据库中建立分词字段)http://www.sqlite.org/fts3.html SQLite官方测试中,50多万条数据用LIKE ‘%keyword%’模糊搜索耗时22.5秒,用MATCH ‘keyword’全文搜索仅耗时0.03秒,比模糊搜索快749倍. FULLTEXT能利用索引进行查询,速度肯定... 1、一张表只能创建一个FULLTEXT索引,创建语句为: ALTER TABLE tablename ADD FULLTEXT INDEX idx_full_text_all(field1,field2..) with parser ngram; with parser ngram :是指定 分词 器插件 2、搜索语句     select * from...
logstash 启动、停止命令 启动: nohup ./logstash -f /usr/local/soft/logstash-6.4.0/config/logstash- mysql -es.conf & 停止: ps -ef| grep logstash kill -s 9 进程号 我们对Markdown编辑器 进行 了一些功能拓展与语法支持,除了标准的Ma...
做电商的需要厘清两个概念SPU和SKU SPU = Standard Product Unit (标准产品 单位 )SPU是商品信息聚合的 最小 单位 ,是一组可复用、易 检索 的标准化信息的集合,该集合描述了一个产品的特性。 在商品信息电子化过程 ,商品的特性可以由多个“属性|属性值对” 进行 描述。“属性|属性值对”完全相同的商品,可以抽象成为一个SPU。 另一方面,这些“属性|属性值对”在SPU 固化下...
SPU = Standard Product Unit (标准产品 单位 ) SPU 是商品信息聚合的 最小 单位 ,是一组可复用、易 检索 的标准化信息的集合,该集合描述 了一个产品的特性。 通俗点讲,属性值、特性相同的商品就可以称为一个 SPU。 例如:iphone7 就是一个 SPU,与商家,与颜色、款式、套餐都无关。 SKU=stock keeping unit(库存量 单位 ) SKU 即库存进出计量...
1. 全文索引 (FULLTEXT INDEX) FULLTEXT索引仅可用于MyISAM表,不可用于INNODB表 2. 全文索引 mysql 的默认情况下,对于 文意义不大 因为英文有空格,标点符号来拆成单 ,进而对单 进行 索引 而对于 文,没有空格来隔开单 mysql 无法识别每个 分词 并不是一件很简单的事情,真正能把 分词 这件事 情做好的... 当您将 数据库 字符 集设置为 utf8,而表的 字符 集设置为 gbk 时,会发生什么呢?这样做会导致 MySQL 在查询表时出现乱码,因为 数据库 和表的 字符 集不匹配。因此,建议您将 数据库 和表的 字符 集都设置为 utf8,这样就可以避免乱码问题。 另外,在 MySQL ,您还可以使用下面的 SQL 语句来查看当前 数据库 字符 集和排序规则: SHOW VARIABLES LIKE 'character_set_database'; SHOW VARIABLES LIKE 'collation_database'; 您也可以使用下面的 SQL 语句来查看某个表的 字符 集和排序规则: SHOW TABLE STATUS LIKE 'table_name'; 希望这些信息能帮助您。