狮身人面像和多语言搜索||按属性搜索

时间:2013-07-14 12:27:52

标签: full-text-search sphinx

我正试图通过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”。 任何帮助表示赞赏!

1 个答案:

答案 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');

我希望它有助于某人...

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