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”。任何帮助表示赞赏!

4

1 回答 1

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

于 2013-07-14T13:59:03.567 回答