开发者社区> 问答> 正文

sphinx 关键词中包含‘$$’时,搜索报错,如何解决?

问题:当搜索的关键词中包含两个或两个以上的$时,搜索报错
软件:coreseek(sphinx中文版)
说明:我使用的是php 的api ; 有将$ 添加到停止词中;
部分代码:

$params['key']='the original price $$9.9 ; the  curren$236t price is $';
$params['key']=$this->client->EscapeString($params['key']);
...
$result = $this->client->query($params['key'],'questions,delta_questions');
if(!$result)
{
    echo $this->client->GetLastError();
    exit;
}

报错:
index delta_questions,questions: syntax error, unexpected '$' near '\$9.9 ; the curren$236t price is \$"/1'

若只是单个包含字符,则可以正常查询,如:params['key']='the original price 9.9;thecurren236t price is $';
这个错误该如何解决?

展开
收起
落地花开啦 2016-06-16 15:41:45 2641 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    美元符号是sphinx语法的一部分,所以直接搜索会报错。调用一下转义函数:EscapeString 即可。

    2019-07-17 19:41:05
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《开放搜索查询分析服务架构分享》 立即下载
《开放搜索统一召回引擎实践》 立即下载
O2O搜索优化实践之道 立即下载