【问题标题】:Thinking sphinx word match思考狮身人面像词匹配
【发布时间】:2012-02-15 12:17:26
【问题描述】:

我拥有的数据是

kiran@test.com - 第一个记录 kiran1@test.com - 第二条记录

我需要使用电子邮件地址进行搜索。我在我的网络应用程序中索引了论坛和用户。

第一个场景

我在 charset 表中保留了“@”符号,它工作正常问题是,例如,如果搜索关键字为“kiran@test.com”,它会给我准确的结果,但如果我只用户“测试”没有找到结果。

第二种情况

如果我不在字符集表中保留“@”符号。如果我使用“kiran@test.com”,我会同时获得结果,而对于“测试”,我也会同时获得结果

预期场景

如果我使用整个电子邮件 'kiran@test.com' - 我只需要获取第一条记录 如果我只使用“测试” - 我需要同时获取两个记录

在普通的 mysql 中,类似“选择电子邮件为 '%search-key%' 的用户”

我使用以下代码进行搜索

ThinkingSphinx.search params[:search_key],:star => Regexp.new('\w+@*\w+', nil, 'u') (我不想把'@'当作分隔符)

请建议我可以通过的任何选项以达到预期的结果。

谢谢 基兰

【问题讨论】:

    标签: ruby-on-rails ruby sphinx thinking-sphinx


    【解决方案1】:

    看看混合字符支持

    http://sphinxsearch.com/docs/current.html#conf-blend-chars

    或者,如果你真的支持 [email like '%search-key%'" ] 样式,可能会支持 min_infix_len。(在字符集表中保留 . 和 @)

    【讨论】:

      【解决方案2】:

      要搜索完整的电子邮件,您可以使用短语搜索运算符。

      http://sphinxsearch.com/docs/current.html#extended-syntax

      因此,如果您可以将搜索查询确定为电子邮件,请使用“短语搜索”,否则使用一般搜索。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-03
        • 1970-01-01
        • 2012-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多