斯芬克斯结合标准铜线对mysql实现全文检索

  

指定表格中<坳/> <坳/> <坳/> <坳/> 指定表格中


一、简介

1.1,斯芬克斯是什么

参考地址:

狮身人面像是由俄罗斯人安德鲁Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用,高结果相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL数据库数据源的支持,也支持从标准输入读取特定格式的XML数据。

Sphinx创建索引的速度为:创建100年万条记录的索引只需3 ~ 4分钟,创建1000年万条记录的索引可以在50分钟内完成,而只包含最新万10条记录的增量索引,重建一次只需几十秒。

1.2,斯芬克斯的特性如下:

(1)高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒),

(2)高性能的搜索(在2 - 4 GB的文本数据上,平均每次检索响应时间小于0.1秒),

(3)可处理海量数据(目前已知可以处理超过100 GB的文本数据,在单CPU的一系统上可处理100文档),

(4)提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合排名方法;

(5),支持分布式搜索;

(6)支持短语搜索

(7)提供文档摘要生成

(8)可作为MySQL的存储引擎提供搜索服务,

(9)支持布尔,短语,词语相似度等多种检索模式;

(10)文档支持多个全文检索字段(最大不超过32个);

(11)文档支持多个额外的属性信息(例如:分组信息,时间戳等),

(12)支持断词;

效率较高,具有较高的扩展性

不负责数据存储

使用斯芬克斯搜索引擎对数据做索引,数据一次性加载进来,然后做了所以之后保存在。这样用户进行搜索的时候就只需要在斯芬克斯云服务器上检索数据即可。而且,斯芬克斯没有MySQL的伴随机磁盘I/O的缺陷,性能更佳。

标准铜线是简单的中文分词的首字母缩写(即:简易中文分词系统)。

参考地址:,,

这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词,词是中文的最小语素单位,但在书写时并不像英语会在词之间用空格分开,所以如何准确并快速分词一直是中文分词的攻关难点。

2.2,特性

标准铜线采用纯C语言开发,不依赖任何外部库函数,可直接使用动态链接库嵌入应用程序,支持的中文编码包括GBK, utf - 8等。

分词算法上并无太多创新成分,采用的是自己采集的词频词典,并辅以一定的专有名称,人的名,地名,数字年代等规则识别来达到基本分词,经小范围测试准确率在90% ~ 95%之间,基本上能满足一些小型搜索引擎,关键字提取等场合运用。首次雏形版本发布于2005年底。

八狗铱怂菇岷媳曜纪叨詍ysql实现全文检索"

二、环境准备

1,暂时关闭防火墙

2,关闭seliunx

3,系统环境

centos7.4 mysql5.6 php5.6

三,搭建sphinx服务

1,安装依赖包

# yum - y安装让gcc gcc-c + + libtool autoconf automake mysql-devel

2,安装sphinx

# yum安装外籍expat-devel # wget - c

#焦油-zxvf sphinx-2.2.10-release.tar。广州

# cd sphinx-2.2.10-release/

# ./configure——prefix=/usr/地方/sphinx,——在mysql——with-libexpat——enable-id64

#做,,使安装

3,安装libsphinxclient, php扩展用到

# cd api/libsphinxclient/

# ./configure——prefix=/usr/地方/sphinx/libsphinxclient

#做,,使安装

# wget - c, http://pecl.php.net/get/sphinx-1.3.3.tgz

#焦油zxvf sphinx-1.3.3。tgz

# cd sphinx-1.3.3/

# phpize

八狗铱怂菇岷媳曜纪叨詍ysql实现全文检索"

# ./configure——with-sphinx=/usr/地方/sphinx/libsphinxclient/獁ith-php-config=/usr/bin/php-config

, #做,,使安装

#成功后会提示:,,

Installing  shared 扩展:,,,,,/usr/lib64/php/模块/

斯芬克斯结合标准铜线对mysql实现全文检索