我拥有的数据是
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')(我不想将'@'视为分隔符)
请建议我可以通过任何选项以达到预期效果。
由于 基兰
答案 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
因此,如果您可以将搜索查询确定为电子邮件,请使用“短语搜索”,否则请使用常规搜索。