2017-10-04 17 views
0

おはよう!カテゴリ検索を実行するSphinx php

があり、このような設定スフィンクス

source txtcontent : ru_config 
{ 
    sql_query = SELECT `id` as `txt_id`, 1 as index_id, `type_id`,`content_type_id`, `title`, `annonce`, `content` FROM `TxtContent` WHERE `status` = 1 AND `content_type_id` != 14 
    sql_attr_uint = index_id 
    sql_attr_uint = type_id 
} 

テーブル全体が索引付けされており、一つの大きな検索インデックスに格納されます。それはそれであるものを見つけるために来るとき は、すべての作品OK

しかし、今日のタスクは、カテゴリがフィールドに記述 カテゴリを検索し、そのような実行するためにSphinxAPIを使ってどのようにPHPでint型 のTYPE_IDを持っていることでした検索? 標準検索は次のようになります。

$sphinxClient = new SphinxClient(); 
$sphinxClient->SetServer("127.0.0.1", 3312); 
$sphinxClient->SetLimits(0, 700,700); 
$sphinxClient->SetSortMode(SPH_SORT_RELEVANCE); 
$sphinxClient->SetArrayResult(true); 
$result = $sphinxClient->Query($this->query, 'txtcontent provider item'); 

は、私が追加しようとしました

$ sphinxClient->のSetFilter( 'TYPE_ID'、 '1');

type_id = 1の場合のみ検索しますが、それは役に立ちませんでした。

実際に特定のカテゴリを検索するにはどうすればよいですか?オプションを使用すると、結果を超過しないようにPHPのすべてを見つけることはできません(それ以外の場合、検索は既存の制限が満たされます)。

+0

あなたの質問https://ru.stackoverflow.com/questions/726122/%d0%92%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%への答えを見つけることがb5%d0%b0%d0%b0%b0%d0%b0%d0%b0%d0%b8%d1%81%d0%ba%d0%b0-%d0%b2-%d0%ba%d0 %b0%d1%82%d0%b5%d0%b3%d0%%d1%80%d0%b8%d0%b8-sphinx-php/726421#726421 –

答えて

0

setFilterは、アレイの値をとります。そして、彼らはsphinxapiクラスはactully(そうでない場合はそれらを見てのだろう!)私はあなたが無効になっていると思います。このような無効なデータを、検出するためのアサーションを使用しています

$sphinxClient->SetFilter('type_id',array(1)); 

type_idが数値属性である) 数値する必要があります。

関連する問題