首页 » SEO优化 » phpresourceid技巧_技能文章搜索引擎sphinx

phpresourceid技巧_技能文章搜索引擎sphinx

访客 2024-10-30 0

扫一扫用手机浏览

文章目录 [+]

1.1) 【搜索引擎的观点】

搜索引擎(Search Engine)是指根据一定的策略、利用特定的打算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户供应检索做事,将用户检索干系的信息展示给用户的系统。
搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、凑集式搜索引擎、门户搜索引擎与免费链接列表等。

phpresourceid技巧_技能文章搜索引擎sphinx

组成: 一个搜索引擎由搜索器 、索引器 、检索器 和用户接口 四个部分组成。

phpresourceid技巧_技能文章搜索引擎sphinx
(图片来自网络侵删)

1.2)【sphinx是什么】

Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以供应比数据库本身更专业的搜索功能,使得运用程序更随意马虎实现专业化的全文检索。
Sphinx特殊为一些脚本措辞设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。

1.3)【sphinx的特点&架构】

1️⃣快速创建索引:3分钟旁边即可创建近100万条记录的索引,并且采取了增量索引的办法,重修索引非常迅速。

2️⃣闪电般的检索速率:只管是1千万条的大数据量,查询数据的速率也在毫秒级以上,2-4G的文本量中均匀查询速率不到0.1秒。

3️⃣为很多脚本措辞设计了检索API,如PHP,Python,Perl,Ruby等,因此你可以在大部分编程运用中很方便地调用Sphinx的干系接口。

4️⃣为MySQL设计了一个存储引擎插件,因此如果你在MySQL上利用Sphinx,那切实其实就方便到家了。

5️⃣支持分布式搜索,可以横向扩展系统性能。

php+mysql+sphinx架构图

1.4)【sphinx的事情流程】

sphinx的事情流程

流程图阐明:

Database:数据源,是Sphinx做索引的数据来源。
由于Sphinx是无关存储引擎、数据库的,以是数据源可以是MySQL、PostgreSQL、XML等数据。

Indexer:索引程序,从数据源中获取数据,并将数据天生全文索引。
可以根据需求,定期运行Indexer达到定时更新索引的需求。

Searchd:Searchd直接与客户端程序进行对话,并利用Indexer程序构建好的索引来快速地处理搜索查询。

APP:客户端程序。
吸收来自用户输入的搜索字符串,发送查询给Searchd程序并显示返回结果。

二、sphinx的安装

2.1)【sphinx在mysql上的运用】

Sphinx在mysql上的运用有两种办法:

①、采取API调用,如利用PHP、java等的API函数或方法查询。
优点是可不必对mysql重新编译,做事端进程“低耦合”,且程序可灵巧、方便的调用;

缺陷是如已有搜索程序的条件下,需修正部分程序。
推举程序员利用。

②、利用插件办法(sphinxSE)把sphinx编译成一个mysql插件并利用特定的sql语句进行检索。
其特点是,在sql端方便组合,且能直接返回数据给客户端。
不必二次查询(注),在程序上仅须要修正对应的sql,但这对利用框架开拓的程序很未便利,比如利用了ORM。
其余还须要对mysql进行重新编译,且须要mysql-5.1以上版本。

#下载最新稳定版

wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz

tar xzvf sphinx-0.9.9.tar.gz

cd sphinx-0.9.9

./configure --prefix=/usr/local/sphinx/ --with-mysql --enable-id64

make

make install

2.2)【安装中文分词插件】

1️⃣ 中文分词:中文的全文检索和英文等latin系列不一样,后者是根据空格等分外字符来断词,而中文是根据语义来分词。
目前大多数数据库尚未支持中文全文检索,如Mysql。
故,海内涌现了一些Mysql的中文全文检索的插件,做的比较好的有hightman的中文分词。
Sphinx如果须要对中文进行全文检索,也得须要一些插件来补充。
个中我知道的插件有 coreseek 和 sfc 。

2️⃣升级autoconf:这里以coreseek为例子,由于coreseek须要autoconf 2.64以上版本,因此须要升级autoconf,不然会报错。
从http://download.chinaunix.net/download.php?id=29328&ResourceID=648下载autoconf-2.64.tar.bz2,安装方法如下:

tar -jxvf autoconf-2.64.tar.bz2

cd autoconf-2.64

./configure

make

make install

3️⃣安装coreseek:

wget http://www.wapm.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

4️⃣安装mmseg(coreseek所利用的词典)

tar xzvf coreseek-3.2.14.tar.gz

cd mmseg-3.2.14

./bootstrap #输出的warning信息可以忽略,如果涌现error则须要办理

./configure --prefix=/usr/local/mmseg3

make && make install

cd ..

5️⃣安装coreseek(sphinx)

cd csft-3.2.14

sh buildconf.sh #输出的warning信息可以忽略,如果涌现error则须要办理

./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql

make && make install

cd ..

6️⃣测试mmseg分词和coreseek搜索

备注:须要预先设置好字符集为zh_CN.UTF-8,确保精确显示中文,我的系统字符集为en_US.UTF-8也是可以的。

cd testpack

cat var/test/test.xml #此时该当精确显示中文

/usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml

/usr/local/coreseek/bin/indexer -c etc/csft.conf --all

/usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索

此时精确的该当返回

words:

1. '网络': 1 documents, 1 hits

2. '搜索': 2 documents, 5 hits

三、sphinx在php中的利用

这里给一个demo:

sphinx搜索的一个例子

标签:

相关文章

微信跳转微信支付便捷支付体验的秘密武器

移动支付已成为人们日常生活中不可或缺的一部分。作为我国领先的社交平台,微信支付凭借其便捷、安全的支付方式,深受广大用户的喜爱。而微...

SEO优化 2025-02-18 阅读0 评论0

探寻会计科目代码背后的奥秘分类与

会计科目代码是会计信息系统中不可或缺的组成部分,它将企业的经济活动进行分类和归纳,为会计核算、财务分析和决策提供重要依据。本文将从...

SEO优化 2025-02-18 阅读0 评论0