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

相關文章
相關標籤/搜索