首頁 > 後端開發 > php教程 > sphinx 关键词中包含‘$$’时,搜索报错

sphinx 关键词中包含‘$$’时,搜索报错

WBOY
發布: 2016-06-06 20:47:47
原創
1185 人瀏覽過

问题:当搜索的关键词中包含两个或两个以上的$时,搜索报错

软件:coreseek(sphinx中文版)

说明:我使用的是php 的api ; 有将$ 添加到停止词中;

部分代码:

<code class="lang-php">$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;
}
</code>
登入後複製
登入後複製

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

若只是单个包含$字符 ,则可以正常查询,如:
$params['key']='the original price $9.9 ; the curren$236t price is $';

这个错误该如何解决?

回复内容:

问题:当搜索的关键词中包含两个或两个以上的$时,搜索报错

软件:coreseek(sphinx中文版)

说明:我使用的是php 的api ; 有将$ 添加到停止词中;

部分代码:

<code class="lang-php">$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;
}
</code>
登入後複製
登入後複製

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

若只是单个包含$字符 ,则可以正常查询,如:
$params['key']='the original price $9.9 ; the curren$236t price is $';

这个错误该如何解决?

美元符号是sphinx语法的一部分,所以直接搜索会报错。调用一下转义函数:EscapeString 即可。具体参见:http://sphinxsearch.com/bugs/view.php?id=709

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板