Sphinx在windows上的安装使用
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,
它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。
Sphinx特别为一些脚本语言设计搜索API接口。
特性:
高速索引;
高速搜索 ;
高可用性 ;
提供良好的相关性排名 支持分布式搜索;
提供文档摘要生成;
提供从MySQL内部的插件式存储引擎上搜索;
支持每个文档多个全文检索域;
支持每个文档多属性;
支持断词;
支持单字节编码与UTF-8编码;
Sphinx在mysql上的应用有两种方式
①、采用API调用,如使用PHP、java等的API函数或方法查询。优点是可不必对mysql重新编译,服务端进程“低耦合”,且程序可灵活、方便的调用;
缺点是如已有搜索程序的条件下,需修改部分程序。推荐程序员使用。
②、使用插件方式(sphinxSE)把sphinx编译成一个mysql插件并使用特定的sql语句进行检索。其特点是,在sql端方便组合,且能直接返回数据给客户端
不必二次查询(注),在程序上仅需要修改对应的sql,但这对使用框架开发的程序很不方便,比如使用了ORM。另外还需要对mysql进行重新编译,且需要mysql-5.1以上版本
支持插件存储。系统管理员可使用这种方式
1.下载
这里使用的是sphinx-2.2.11-release-win64
2.下载后解压在 E:\sphinx 目录下
在mysql新建数据库test,导入example.sql
3.建立配置文件
复制 E:\sphinx\sphinx.min.conf.in 到 E:\sphinx\bin\sphinx.conf
修改sphinx.conf必要项
(1)mysql数据库连接项;
(2)@CONFDIR@替换成实际目录,然后手动建立好该目录及子目录,这里为
E:\sphinx\data # 索引数据目录
E:\sphinx\log # 进程文件目录
4. 安装Sphinx到Windows服务
1 | searchd.exe --install -c sphinx.conf --servicename SphinxSearch |
5. PHP客户端测试
进入E:\sphinx\api目录,sphinx提供了php, python , ruby , c等客户端代码,如果Php程序员想访问Sphinx,包含sphinxapi.php就可以了 ,test.php是Sphinx提供的访问例子。
在测试之前,需要生成索引文件到E:\shpinx\data目录,进入E:\sphinx\bin执行
1 | indexer.exe -c sphinx.conf --all |
运行成功后必须重新启动Sphinx才能生效。
在启用服务的时候提示”发生系统错误1067″,查了下资料,这需要在安装服务的时候指定配置文件的路径
因为系统中已存在searchd服务所以需要先删除,再重新install
重启后执行test.php
1 | php test.php test |
出现了错误Query failed: connection to localhost:9312 failed (errno=10060, msg=由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
如果本地使用IPV4、IPV6双栈网络(windows 7),默认localhost 指向IPV6
改为:127.0.0.1就好了
修改test.php的host
$host = "127.0.0.1";
再执行test.php
searchd的启动与停止
1 | net start/stop searchd |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)