2011-08-18 173 views
1

8場我不能回答我的問題呢,所以這裏就是答案獅身人面像只返回2(出)使用獅身人面像PHP API

我是個白癡......沒有重新編制每次。

searchd --stop 
indexer --all 
searchd 

問題解決了。對不起,浪費任何人的時間:(希望這可以幫助別人。

**回答完**

我對一個索引表上運行的查詢的PHP模型(稱之爲歌曲)。

的在sphinx.conf中查詢是如下:

sql_query  = \ 
    SELECT \ 
    songs.id AS song_id, \ 
    songs.title AS song_title, \ 
    songs.upload_stamp AS song_published, \ 
    songs.uri AS song_uri, \ 
    songs.artist_id, \ 
    songs.song_rank, \ 
    songs.vote_count \ 
    FROM songs 

然而,當我運行代碼以執行該查詢時,所得到的數組只包含2個字段song_published & artist_id,並且缺少其他6個字段

PHP代碼如下所示:

$this->cl->SetMatchMode(SPH_MATCH_ALL); 
$this->cl->SetConnectTimeout (1); 
$this->cl->SetArrayResult (true); 
$this->cl->SetWeights (array (100, 1)); 

$result = $this->cl->Query($this->search_term,'song-index'); 

我每次試圖千頭萬緒,並重新啓動的searchd(編輯和重建索引)無濟於事。它是返回正確的結果,但結果數組中只有8個字段中的2個。

任何幫助將非常感謝!

編輯...

下面是值的聲明以及

sql_attr_uint  = artist_id 
sql_attr_uint  = song_id 
sql_attr_uint  = vote_count 
sql_attr_timestamp = song_published 
sql_attr_float  = song_rank 
sql_attr_string  = song_uri 
sql_attr_string  = song_title 
+2

可以肯定的是,你是否重新編制索引?因爲searchd只搜索索引但你需要運行索引器來重建索引 – fiftyeight

+0

是的,謝謝!停止/重新索引每次我改變.conf **編輯**我是一個白癡。沒有我沒有重新索引最後幾個(重要)的變化。對不起...並且謝謝! –

+0

NP它碰巧我們所有人:) – fiftyeight

回答

0

我是個白癡......每次都沒有重新索引。

searchd --stop indexer --all searchd 問題解決了。對不起,浪費任何人的時間:(希望這可以幫助別人。)

0

您也可以運行以下不停止searchd的創建配置更改後的新指標。它會在完成生成後在新索引中旋轉,然後刪除舊索引。

indexer --rotate --all 

有關更多詳細信息,請參閱indexer cml reference

+1

爲什麼downvote?這是正確的,實際上是首選方法,不是嗎? Upvoted。 – TheCarver