【发布时间】: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