随笔分类 - sphinx
摘要:场景:搜索子域名比如搜索yzswyl.cn会把www.yzswyl.cn、yzswyl.cn、host.yzswyl.cn等都搜索出来。如果使用mysql用like的话效率是非常低的,几百万甚至上千万的数据那是没有办法使用的,于是采取sphinx来做。在使用的过程中发现了诸多问题,这里将其总结起来,也让不知道的朋友注意下这些字符。分析:sphinx是全文索引,它搜索的是包含的记录。首先如果我们不做任何设置的话,搜索yzswyl.cn会出现把aayzswyl.cn、yzswyl.a.cn、yzswyl.cn.com(当然这个域名后缀不存在,但是会有符合相应规则的域名,这里只举例)等等。为什么会出
阅读全文
摘要:阅读原文:http://www.yzswyl.cn/blread-1612.htmlSphinx的searchd守护程序从 版本0.9.9-rc2开始支持MySQL二进制网络协议,并且能够通过标准的MySQL API访问。例如,“mysql”命令行程序可以很好地工作。以下是用MySQL客户端对Sphinx进行查询的例子:$ mysql -P 9306Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 0.9.9-dev (r1734) ...
阅读全文
摘要:阅读原文:http://yzswyl.cn/blread-1611.html1.未采用mysql二进制网络协议的代码://检查sphinx是否能连接,不能重试两次,能则连接,不用mysql协议,仅供参考function checkSphinxNoMysql() { $flag = true; $retries = 0; while ( $flag && $retries < 2 ) { $s = new SphinxClient (); $s->setServer ( $_ENV ['db_host'], $_ENV ['current_sp
阅读全文
摘要:阅读原文:http://yzswyl.cn/blread-1610.html问题:用sphinx进行索引并搜索的时候出现了以下情况:1.搜索“C#”出来的却是包含“C”的记录2.搜索“C#源码”出来的却是包含“C*源码”的记录,这里的*代表任意字符,而把中间的#给忽略掉了那么如何对#进行索引呢?解决方法:我们打开sphinx索引的配置文件,找到“charset_table = ”,在里面增加“U+0023”其中“0023”是“#”的16进制ASCII值。如需其他字符相应添加即可。
阅读全文