Home >Backend Development >PHP Tutorial >sphinx 关键词中包含‘$$’时,搜索报错

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

WBOY
WBOYOriginal
2016-06-06 20:47:471186browse

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

软件: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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn