全文搜索Mysql无法使用&符号Laravel

问题描述 投票:0回答:1

我正在尝试在全文搜索模式下找到这些单词。

'a&w''b&w''b&w'

查询返回这些单词的空结果。

我的查询

$results = Name_tag::where('status', 2)->take(5)->groupBy('brand_id')->whereRaw("MATCH (keyword) AGAINST (? IN BOOLEAN MODE)", $this->fullTextFullTerm($input))->get();

 protected function fullTextFullTerm($input)
    {
        $reservedSymbols = ['-', '+', '<', '>', '@', '(', ')', '~'];
        $input= str_replace($reservedSymbols, '', $input);

        $words = '"'.$input.'"';
        return $words;
    }

我桌上的一些字

a&w黑白a&w黑白

....

没有&的其他搜索词正常工作。知道有什么问题吗?为什么全文搜索无法在其中找到包含&符号的单词?

mysql sql laravel laravel-5 full-text-search
1个回答
0
投票

您需要使用html_entity_decode将HTML实体转换为字符。

所以您的代码将如下所示:

$results = Name_tag::where('status', 2)->take(5)->groupBy('brand_id')->whereRaw("MATCH (keyword) AGAINST (? IN BOOLEAN MODE)", $this->fullTextFullTerm($input))->get();

protected function fullTextFullTerm($input)
{
   $reservedSymbols = ['-', '+', '<', '>', '@', '(', ')', '~'];
   $input= str_replace($reservedSymbols, '', $input);
   $words = '"'.$input.'"';
   return html_entity_decode($words);
}
© www.soinside.com 2019 - 2024. All rights reserved.