思维狮身人面像一词匹配

时间:2012-02-15 12:17:26

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

我拥有的数据是

kiran@test.com - 第一张唱片 kiran1@test.com - 第二条记录

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

第一种情况

我在charset表中保留了'@'符号,这是正常工作的问题,例如,如果搜索关键字为'kiran@test.com',它会给我确切的结果,但如果我只是'用户'测试'否结果发现。

第二种情况

如果我不在charset表中保留'@'符号。如果我使用'kiran@test.com'我同时得到结果和'测试'我也得到了两个结果

预期情景

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

在简单的mysql中,例如“选择用户所在的电子邮件,如'%search-key%'”

我使用以下代码进行搜索

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

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

由于 基兰

2 个答案:

答案 0 :(得分:0)

看看混合字符支持

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

或者如果你真的是[像'%search-key%''这样的电子邮件]样式支持min_infix_len。(在charset表中留下。和@)

答案 1 :(得分:0)

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

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

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

相关问题