跳至正文
i@laoer.com

技术、生活、感悟 -- Laoer的博客

i@laoer.com

技术、生活、感悟 -- Laoer的博客

  • 首页
  • 人工智能
  • 互联网
  • 商业观察
  • 天乙软件
  • 用药有数
  • 隐私政策
  • 关于
  • X
  • 首页
  • 人工智能
  • 互联网
  • 商业观察
  • 天乙软件
  • 用药有数
  • 隐私政策
  • 关于
  • X
关

搜索

  • 首页
  • 人工智能
  • 互联网
  • 商业观察
  • 天乙软件
  • 用药有数
  • 隐私政策
  • 关于
  • X
i@laoer.com

技术、生活、感悟 -- Laoer的博客

i@laoer.com

技术、生活、感悟 -- Laoer的博客

  • 首页
  • 人工智能
  • 互联网
  • 商业观察
  • 天乙软件
  • 用药有数
  • 隐私政策
  • 关于
  • X
  • 首页
  • 人工智能
  • 互联网
  • 商业观察
  • 天乙软件
  • 用药有数
  • 隐私政策
  • 关于
  • X
关

搜索

  • 首页
  • 人工智能
  • 互联网
  • 商业观察
  • 天乙软件
  • 用药有数
  • 隐私政策
  • 关于
  • X
PHP数据库

Sphinx+Mysql初使用体验

作者 Laoer
2009年5月8日 3 分钟阅读
3

应用越来越多的需要全文搜索技术来支撑,在Java中可以使用Lucene,一个非常优秀的引擎,在Hibernate中也整合了Lucene来做检索,但在使用PHP的过程中迫切需要找一个优秀的全文搜索引擎(虽然也可以把PHP和Lucene结合起来使用,但有些另类,有些生产环境也不能同时支持),以前在网上看到一些Sphinx的文章,一直没有实践,昨天我就花了一天的时间,配置测试了一下Sphinx。

由于我的PHP没有编译Sphinx模块,所以我主要是配置Sphinx+Mysql,在Mysql上测试全文搜索的效果,Mysql、Sphinx、中文分词的编译安装过程不详述,下面两篇文章挺好,安装时可以参考

Mysql+sphinx+中文分词简介

基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计

我的编译安装过程没有遇到什么麻烦,就是编译Mysql的时候比较长,而且要注意把Innodb的引擎编译进去,我的Mysql编译参数如下

./configure –with-plugins=sphinx,innobase,heap –prefix=/usr/local/mysql –enable-assembler –with-charset=utf8 –with-extra-charsets=all –enable-thread-safe-client –with-big-tables –with-readline –with-ssl –with-embedded-server –enable-local-infile

比较奇怪的是innodb是支持了,heap不支持,这个问题下次再研究。

通过编译Mysql,使Mysql支持了Sphinx存储引擎,试了一下Sphinx的例子,成功搜索到了数据,如果我们要对自己的数据做索引,就要研究一下Sphinx的配置文件了。

Sphinx的配置文件在其安装目录下的etc目录下,你可以参考其例子的sphinx.conf创建自己的配置文件,在sphinx里有主要要配置的有两大块,一部分是source(数据源),另一部分是index(索引),source里面定义了连接数据库的参数,取得源数据的SQL,也就是你要索引的数据的取得 SQL(Sphinx是支持不同数据源的,我这里只测试SQL),source可以有继承关系,继承的source可以用来做取得增量数据,index里面定义了使用哪个source,index存放的路径、字符集、辞典等等,index也可以继承,继承的index用来做增量索引。由此可见source 和index都是根据你的需要配置的,可以取得多个数据源的数据,可以建立多个索引。

增量索引的小困惑,我在数据库中增加了2条记录,执行

/usr/local/sphinx/bin/indexer –rotate –config /usr/local/sphinx/etc/sphinx.conf test1stemmed

看到有两个文档被加入索引(增量部分),之后我执行

/usr/local/sphinx/bin/indexer –rotate –merge test1 test1stemmed –merge-dst-range deleted 0 0

将增量索引并入主索引,这是可以查询到新插入的数据,这时我再继续插入一条数据,执行

/usr/local/sphinx/bin/indexer –rotate –config /usr/local/sphinx/etc/sphinx.conf test1stemmed

提示信息是有3个文档被加入索引,让我非常奇怪,因为上两条纪录已经并入主索引了,这次怎么还会索引呢?之后我执行

/usr/local/sphinx/bin/indexer –rotate –config /usr/local/sphinx/etc/sphinx.conf test1

更新主索引,之后再执行/usr/local/sphinx/bin/indexer –rotate –config /usr/local/sphinx/etc/sphinx.conf test1stemmed提示没有索引加入,这样就正确了,如果按照测试的结果,增量索引和主索引更新执行的时间要计划好。

关于中文分词–LibMMSeg:LibMMSeg 是Coreseek.com为 Sphinx 全文搜索引擎设计的中文分词软件包,其在GPL协议下发行的中文分词法,采用Chih-Hao Tsai的MMSEG算法。

同时Coreseek.com提供了一份Sphinx的中文文档,里面有比较详细的配置说明,是很好的参考资料,非常感谢开源人士做出的贡献。

标签:

MysqlPHPSphinx
作者

Laoer

1999年开始做互联网,做过开发、技术管理,也创过几次业。 现在依然在一线做产品、写代码、折腾AI。 关注AI如何重新改变软件、公司和人的工作方式。 公众号:Laoer杂谈。

关注我
其他文章
上一个

Short Url(短网址)实现方式

下一个

5.12纪念

3 评论
  1. phpbird说道:
    2009年5月18日 15:59

    真的好用麽。你这个wordpress能换成这个搜索不?

  2. Laoer说道:
    2009年5月19日 08:29

    还不错,wordpress的搜索不太了解,Sphinx+Mysql的安装也挺费事的。

  3. avenger说道:
    2009年8月4日 09:59

    中文文档的链接失效了,能不能放一个本地链接?谢谢

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

微信订阅

欢迎订阅微信公众号--“Laoer杂谈”,搜索微信号:laoertalk,“Laoer杂谈”是关于技术、创业、生活的杂谈与随笔,希望与大家多多交流。

用药有数·DoseLoop

用药有数·DoseLoop 一款不会响完就消失的用药提醒。每次计划用药持续追踪,直到有明确结果。支持慢病、老人、ADHD 等各种用药场景。

标签

AI AI Agent AI Coding Anthropic ChatGPT Claude Claude Code Codex DeepMind DeepSeek DeepSeek Harness Gemini Google GPT iOS iPhone Java JavaScript jQuery Kimi Kohana Linux LLM Mac Memcached Meta Mysql Nginx OpenAI Oracle PHP RSA Sam Altman SNS Struts Tomcat Web2.0 互联网 人工智能 创业 大模型 工作 旅游 生活 管理

日历

2026 年 11 月
日 一 二 三 四 五 六
1234567
891011121314
15161718192021
22232425262728
2930  
« 10 月    

近期评论

  • AI Coding 文档管理:写代码越来越快,文档却更重要了 发表在《AI写代码已经不稀奇了,真正的变化是很多东西突然值得做了》
  • 大模型商业化:中国AI模型越来越强,为什么反而更难赚钱? 发表在《DeepSeek V4涨价后,真正的问题不是谁在用,而是谁在赚钱》
  • Laoer 发表在《AI 有没有意识还没定论,Anthropic 为什么先限制虐待它?》
  • 爱生活 发表在《AI 有没有意识还没定论,Anthropic 为什么先限制虐待它?》
  • 爱生活 发表在《AI 有没有意识还没定论,Anthropic 为什么先限制虐待它?》
  • AI数据分析如何改变BI工作流?15分钟完成一份运营报告 发表在《我把DeepSeek Harness接进生产环境后,发现AI运维真正改变的不是查日志》
  • 99%的代码都由AI写了,那程序员真正值钱的是什么? – i@laoer.com 发表在《我把DeepSeek Harness接进生产环境后,发现AI运维真正改变的不是查日志》
  • 爱生活 发表在《你的一分钟语音,可能是别人的十分钟》
  • 爱生活 发表在《Bill Gates为什么突然不相信“AI最终会创造更多工作”了?》
  • DeepSeek Harness来了,国产AI Coding终于开始补最短的那块板 – i@laoer.com 发表在《这次真不慌了,Claude随时可以取消订阅》

分类

  • iOS
  • Java
  • JavaScript
  • Linux
  • Mac
  • PHP
  • Web2.0
  • 互联网
  • 人工智能
  • 创业
  • 博客文章
  • 商业观察
  • 工作
  • 数据库
  • 构架设计
  • 生活

归档

  • 2026 年 11 月
  • 2026 年 10 月
  • 2026 年 9 月
  • 2026 年 8 月
  • 2026 年 7 月
  • 2026 年 6 月
  • 2026 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2023 年 12 月
  • 2023 年 1 月
  • 2022 年 8 月
  • 2021 年 12 月
  • 2021 年 10 月
  • 2020 年 12 月
  • 2020 年 1 月
  • 2018 年 12 月
  • 2018 年 8 月
  • 2018 年 4 月
  • 2017 年 12 月
  • 2016 年 12 月
  • 2016 年 8 月
  • 2016 年 2 月
  • 2015 年 12 月
  • 2015 年 1 月
  • 2013 年 6 月
  • 2013 年 5 月
  • 2012 年 11 月
  • 2012 年 7 月
  • 2012 年 6 月
  • 2012 年 5 月
  • 2012 年 3 月
  • 2012 年 1 月
  • 2011 年 12 月
  • 2011 年 11 月
  • 2011 年 10 月
  • 2011 年 9 月
  • 2011 年 8 月
  • 2010 年 11 月
  • 2010 年 2 月
  • 2010 年 1 月
  • 2009 年 12 月
  • 2009 年 11 月
  • 2009 年 9 月
  • 2009 年 7 月
  • 2009 年 6 月
  • 2009 年 5 月
  • 2009 年 4 月
  • 2009 年 3 月
  • 2009 年 2 月

其他操作

  • 登录
  • 条目 feed
  • 评论 feed
  • WordPress.org
Copyright 2026 — i@laoer.com. All rights reserved. Blogsy WordPress Theme