使用的coreseek3.2版本,現在有一個mysql的源,包括id,addtime,uid,title等欄位。其中addtime為unix時間戳記,現在想根據addtime做範圍查詢。代碼如下:
$s = new SphinxClient;$s->setServer("localhost", 9312);$s->setArrayResult(true);$s->setMatchMode(SPH_MATCH_EXTENDED2);$s->SetFilterRange('addtime',0,99999999999);$result = $s->query('word', 'request_log_order');print_r($result);
但是並沒有什麼卵用,$result
為false
,當去掉addtime的過濾之後可以正常篩選到結果,addtime的值確實位於0-9999999999之間。
問題二:如何不設定關鍵詞,即我只需要限定addtime的範圍就行了,不需要設定搜尋關鍵詞。query方法必須傳一個關鍵詞?
應用情境是這樣的,需要篩選出指定日期內的訂單數超過N筆的資料,由於sql語句複雜,執行速度慢,所以考慮用coreseek實現。
回複內容:
使用的coreseek3.2版本,現在有一個mysql的源,包括id,addtime,uid,title等欄位。其中addtime為unix時間戳記,現在想根據addtime做範圍查詢。代碼如下:
$s = new SphinxClient;$s->setServer("localhost", 9312);$s->setArrayResult(true);$s->setMatchMode(SPH_MATCH_EXTENDED2);$s->SetFilterRange('addtime',0,99999999999);$result = $s->query('word', 'request_log_order');print_r($result);
但是並沒有什麼卵用,$result
為false
,當去掉addtime的過濾之後可以正常篩選到結果,addtime的值確實位於0-9999999999之間。
問題二:如何不設定關鍵詞,即我只需要限定addtime的範圍就行了,不需要設定搜尋關鍵詞。query方法必須傳一個關鍵詞?
應用情境是這樣的,需要篩選出指定日期內的訂單數超過N筆的資料,由於sql語句複雜,執行速度慢,所以考慮用coreseek實現。
是64位的嗎?這麼多9超過32位範圍了。
1、指定日期內的訂單數超過N筆的資料
資料庫就能處理了,加個索引,應該就ok了吧
2、query方法必須傳一個關鍵詞