我有以下索引与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
我可以用Sphinx做到吗?
答案 0 :(得分:1)
如果我理解正确的任务,这应该会有所帮助:
$ cl-> SetSelect('*,categoria1_id = N或categoria2_id = N或categoria3_id = N或categoria4_id = N as fil'); $ cl-> SetFilter('fil',array(1));
这将返回所有将categoria1_id / categoria2_id / categoria3_id / categoria4_id设置为N的文档。