我正试图通过attr_string从sphinx获得结果。这是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
)
)
我想要做的是按“language”= en过滤所有结果。 $ sphinx-> SetFilter()通过整数工作,在这种情况下我只需要字符串“en”。 任何帮助表示赞赏!
答案 0 :(得分:0)
我找到了解决方案...... 如果有人需要它。
配置“source”以使用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');
我希望它有助于某人...