2011-08-18 172 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