搜索引擎和带重音的单词不匹配

gk7wooem  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(307)

这个问题在这里已经有答案了

utf-8全程(16个答案)
两年前关门了。
我想为我的网站做一个搜索引擎。除非一个词中有重音,否则它是有效的。
例如,如果我有一个标题:“musé如果我写的是“波杜因博物馆”或“穆斯”é它不显示任何东西。如果我只写“波杜因”,那就是工作。
如果我的文章标题有重音,我就找不到了。
如何做?

public function searchNav(Request $request)
  {
    $search = $request->get('search');

    $buildings = Building::where('title', 'LIKE', '%' . $search . '%')->orWhere('city', 'LIKE', '%' . $search . '%')->published()->get();
    $events = Event::where('title', 'LIKE', '%' . $search . '%')->orWhere('city', 'LIKE', '%' . $search . '%')->published()->get();

    // Create a new collection and merge elements
    $all = new Collection();
    $all = $all->merge($buildings);
    $all = $all->merge($events);
    $all = $all->sortByDesc('updated_at');
    $this->data['items'] = $all->all();

    return view('pages.search-nav-results', $this->data);
  }

谢谢

iyr7buue

iyr7buue1#

这听起来像是一个编码问题,这意味着您当前的编码不支持重音字符。下面是一种使用utf-8编码创建mysql数据库的方法,它肯定会支持示例中的重音字符:

CREATE DATABASE yourdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

假设您还没有使用支持这些重音字符的编码,这将修复mysql方面的问题。在php方面,这有点复杂,但是您还需要确保支持正确的编码。我建议你到一个很好的博客网站,其中涵盖了php的细节。

相关问题