sphinx with autocomplete

php作服务端,刚接到作app搜索自动补全需求的时候,第一反应是sphinx。php

查找sphinx资料,在linux服务器上搭建了php sphinx 模块linux

linux配置启动计划任务执行脚本生成索引文件数组

由于服务器端php的框架是codeigniter,实例化sphinx的时候只能在Moede , $sphinx = new Sphinx Client();服务器

经过php取出ID集合,接着卡住了,由于sphinx 索引的是ID集合,又分词查找的一元化,继续看sphinx 中文版coreseeek官方文档app

有一个全文匹配模式叫  SPH_MATCH_EXTENDED2框架

最后在(搜索执行前)query执行语句是关键字前加上^codeigniter

$this->sphinx->SetMatchMode(SPH_MATCH_EXTENDED2);
$keys_arr = $this->sphinx->query('^' . $keyword, "*");

终于搞定了post

可是app端频繁调接口会影响服务器性能,又卡住了性能

找了相关资料也没怎么说,没办法,打个电话给之前技术老大求助this

老大只说了一句思路错了

并提供了方案:

第一个关键字请求是post到服务端,返回给客户端是要求客户端放入一个数组,

以后没键入一个关键字就在这个数组匹配,没有的话再post服务端请求一次,以此类推

瞬间豁然开朗,又学到新思路,

感谢老大

并分享给和我同样遇到搜索引擎自动提交问题没思路的同仁!

02/29 17:16 2016 By DanielChan

相关文章
相关标签/搜索