window7下安装sphinx2.1.1

15 篇文章 0 订阅

前几天看到mysql的全文搜索,现在的mysql虽然支持全文搜索,却不支持中文的搜索。看到sphinx可以作为一个搜索引擎实现中文搜索,于是这几天进行研究。

首先介绍下sphinx(斯芬克斯)的实现原理:

mysql其实也可以实现中文搜索,像sql:select *  from articles where title like "%标题%"但我们知道,like的搜索只有左边没有%时才会用到索引,两边都有%的是用不到索引的。如果网站的访问量很大,使用like实现模糊查询实在是太慢了。这时候要想使搜索速度变快,我们就用到了sphinx。

Sphinx的整个工作流程就是Indexer程序到数据库里面提取数据,对数据进行分词,然后根据生成的分词生成单个或多个索引,并将它们传递给searchd程序。然后客户端可以通过API调用进行搜索。

例如:我们有一张表如下图

sphinx的配置项中有个source(数据源),从里面可以配置数据的来源就是上面这张表。然后sphinx中的indexer程序根据这张表进行分词。比如查找test,sphinx就会找到id为1,2,4的三条记录。我们可以根据sphinx返回的到数据表中查找记录详细信息。

 

原理介绍完了,接下来我们说一下sphinx的安装。

刚开始安装时我是在http://sphinxsearch.com/downloads/current/下载的最新版3.1.1,可是当我按照网上的步骤操作时,却出现了问题。

当在bin目录下执行indexer testindex和searchd时,都出现了indexer或searchd不是内部或外部命令。大家可以看一下,下图是3.1.1的解压包,它的indexer后面是没有.exe

然后我又下载了3.0.3,解压后如图。可以看到,后面是有.exe的

然后我就用3.0.3的建立索引。indexer testindex.接着启动searchd却报错了。按着网上的步骤搜索测试search  test.也是提示search不是内部或外部命令(刚开始用的searchd test进行搜索报错,看了网上的是search test,可是bin目录下却没有search.exe这是程序,纳闷了好久)

后来又找相关视频,视频中是下载的2.1.1版本,2.1.1版本是有search.exe这个程序的

接下来正式安装sphinx(注意:使用的是2.1.1版本)

新建data和log目录

配置sphinx.conf文件,我们可以用sphinx-min.conf.in进行修改

如果搜索中文是一定要设置字符集

 

接下来建立索引,在bin目录下执行,testindex是配置文件中index后面的名称

执行搜索,搜索test

如果想重新建立索引可以这样

在命令行下搜索中文会搜索不到,我们可以在程序中搜索中文

PHP中调用Sphinx有两种方式

方式一:使用Sphinx官方提供的api文档,引入include 'sphinxapi.php'; 

方式二:

(1)在这里 https://pecl.php.net/package/sphinx/1.3.2/windows 下载Sphinx模块(根据自身环境选择相应版本,可以通过phpinfo进行查看)

(2)下载后解压,并将解压得到的php_sphinx.dll文件放到php的ext目录下

使用

3.1.1和3.0.3的版本没研究好,有研究好的大神请告知

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小骨格子屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值