sphinx with autocomplete
2016-02-29 17:17
204 查看
php做服务端,刚接到做app搜索自动补全需求的时候,第一反应是sphinx。
查找sphinx资料,在linux服务器上搭建了php sphinx 模块
linux配置启动计划任务执行脚本生成索引文件
因为服务器端php的框架是codeigniter,实例化sphinx的时候只能在Moede , $sphinx = new Sphinx Client();
通过php取出ID集合,接着卡住了,因为sphinx 索引的是ID集合,又分词查找的一元化,继续看sphinx 中文版coreseeek官方文档
有一个全文匹配模式叫 SPH_MATCH_EXTENDED2
最后在(搜索执行前)query执行语句是关键字前加上^
终于搞定了
但是app端频繁调接口会影响服务器性能,又卡住了
找了相关资料也没怎么说,没办法,打个电话给以前技术老大求助
老大只说了一句思路错了
并提供了方案:
第一个关键字请求是post到服务端,返回给客户端是要求客户端放入一个数组,
之后没键入一个关键字就在这个数组匹配,没有的话再post服务端请求一次,以此类推
瞬间豁然开朗,又学到新思路,
感谢老大
并分享给和我一样遇到搜索引擎自动提交问题没思路的同仁!
02/29 17:16 2016 By DanielChan
查找sphinx资料,在linux服务器上搭建了php sphinx 模块
linux配置启动计划任务执行脚本生成索引文件
因为服务器端php的框架是codeigniter,实例化sphinx的时候只能在Moede , $sphinx = new Sphinx Client();
通过php取出ID集合,接着卡住了,因为sphinx 索引的是ID集合,又分词查找的一元化,继续看sphinx 中文版coreseeek官方文档
有一个全文匹配模式叫 SPH_MATCH_EXTENDED2
最后在(搜索执行前)query执行语句是关键字前加上^
$this->sphinx->SetMatchMode(SPH_MATCH_EXTENDED2); $keys_arr = $this->sphinx->query('^' . $keyword, "*");
终于搞定了
但是app端频繁调接口会影响服务器性能,又卡住了
找了相关资料也没怎么说,没办法,打个电话给以前技术老大求助
老大只说了一句思路错了
并提供了方案:
第一个关键字请求是post到服务端,返回给客户端是要求客户端放入一个数组,
之后没键入一个关键字就在这个数组匹配,没有的话再post服务端请求一次,以此类推
瞬间豁然开朗,又学到新思路,
感谢老大
并分享给和我一样遇到搜索引擎自动提交问题没思路的同仁!
02/29 17:16 2016 By DanielChan
相关文章推荐
- 软件工程概论第一周
- 自我介绍和注册过程
- Linux之内核源码树的建立
- 老李分享:HTTP session原理及应用 3
- 华为离职副总裁徐家骏的工作感悟
- 老李分享:HTTP session原理及应用 2
- jquery利用正则验证不能含有中文
- 巧用c语言中数组部分元素初始化
- 算法导论第三版习题7.4
- jQuery对表单表格的操作
- Oracle类型修改
- Android SDK Manager 设置代理
- php权限管理的一些细节问题
- maven,spring,mybatis集成错误
- Maven仓库-Nexus环境搭建及简单介绍
- paper 33 :[教程] 如何使用libsvm进行分类
- 管理Sass项目文件结构
- C# Split 字符串转成List<int>
- 年终总结--2015年,曲折的路往往风景更加精彩
- 老李分享:HTTP session原理及应用 1