【问题标题】:sphinx and multilanguage search || search by attributesphinx 和多语言搜索 ||按属性搜索
【发布时间】:2013-07-14 12:27:52
【问题描述】:

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

【问题讨论】:

    标签: full-text-search sphinx


    【解决方案1】:

    我找到了解决方案... 如果有人需要的话。

    配置“源”以使用 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

    【讨论】:

    • 你应该接受你自己的答案。你不会得到任何分数(也不会受到惩罚!)但它会将线程标记为已回答。
    • 啊,不知道。很抱歉怀疑你!
    • 实际上我正在考虑删除这个......我对这个解决方法不满意:S
    • 与其删除,不如只添加另一个答案。这个答案可能仍然对其他人有所帮助。即使 crc 技巧不适合你,它也可能适用于其他人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多