2011-03-04 61 views
1

我有獅身人面像以下指標:如何使用Sphinx中的「或」子句進行搜索?

source src1 
{ 
    type     = mysql 
    sql_host  = localhost 
    sql_user  = ... 
    sql_pass  = ... 
    sql_db   = .... 
    sql_port  = 3306 # optional, default is 3306 
    sql_sock    = /var/run/mysqld/mysqld.sock 

    sql_query  = \ 
     SELECT anuncio_id,data_criacao,titulo,descricao,categoria1_titulo,categoria1_id,categoria2_titulo,categoria2_id,categoria3_titulo,categoria3_id,categoria4_titulo,categoria4_id FROM ccsprool_indice 

    sql_field_string = titulo 
    sql_field_string = descricao 
    sql_field_string = categoria1_titulo 
    sql_field_string = categoria2_titulo 
    sql_field_string = categoria3_titulo 
    sql_field_string = categoria4_titulo 
    sql_attr_uint = categoria1_id 
    sql_attr_uint = categoria2_id 
    sql_attr_uint = categoria3_id 
    sql_attr_uint = categoria4_id 
    sql_attr_timestamp = data_criacao   
    sql_query_info   = SELECT * FROM ccsprool_indice WHERE anuncio_id=$id 

} 

index produtos_sprool 
{ 
    source   = src1 
    path   = /usr/local/sphinx/var/data/produtos_sprool 
    docinfo   = extern 
    mlock   = 0 
    morphology  = none 
    charset_type  = utf-8 
    html_strip  = 1 
    min_word_len   = 3 
    min_prefix_len   = 0 
    min_infix_len   = 3 
    wordforms = /usr/local/sphinx/data/wordforms.txt 
} 

我需要檢查的項目是在categoria1_id,或categoria2_id,categoria3_id,或categoria4_id

我能做到這一點與獅身人面像?

回答

1

如果我理解正確的任務本應幫助:

$ CL-> SetSelect( '*,categoria1_id = N或categoria2_id = N或categoria3_id = N或categoria4_id = N爲FIL'); $ cl-> SetFilter('fil',array(1));

這將返回有一個所有文件categoria1_id/categoria2_id/categoria3_id/categoria4_id設置爲N.

+0

這就是完美!非常感謝你! – williamhrs 2011-03-11 14:04:23