2013-07-14 185 views
0

我試圖從attr_string得到sphinx的結果。這裏是獅身人面像的配置:獅身人面像和多語言搜索||按屬性搜索

source db 
{- 
    type   = mysql 
    sql_query  = \ 
     SELECT id,language,text,page_url \ 
     FROM content 
    sql_attr_string     = language 
    sql_attr_string     = page_url 

} 
index content 
{ 
    source   = db 
    charset_type = utf-8 
    min_word_len = 3 
} 

是我得到的結果是這樣的:

[matches] => Array 
     (
      [106] => Array 
       (
        [weight] => 4 
        [attrs] => Array 
         (
          [page_url] => en/example.gtml 
          [language] => en 
         ) 

       ) 

我想要做的是「語言」 = EN過濾所有結果。 $ sphinx->SetFilter()正在整數工作,在這種情況下,我只需要字符串「en」。 任何幫助表示讚賞!

回答

0

我找到了解決辦法... 如果有人需要它。

配置 「源」 來使用CRC32,例如:

source db 
{ 
    type   = mysql 
    sql_query  = \ 
     SELECT id,crc32(language) as language,text,page_url \ 
     FROM content 
    sql_attr_uint     = language 
    sql_attr_string     = page_url 
} 

而在客戶機,修改使用setfilter方法使用CRC32()。例如:

$s->SetFilter('language',array(crc32('en'))); 
$result = $s->query('bird is a word','content'); 

我希望它可以幫助別人......

的更多信息:http://sphinxsearch.com/docs/current.html#attributes

+0

你應該接受你自己的答案。你不會得到任何要點(也不會受到任何懲罰!),但它將線程標記爲已回答。 – barryhunter

+0

啊,不知道。抱歉懷疑你! – barryhunter

+0

實際上我正在考慮刪除這個...我對此解決方法感到不滿意:S – confiq