› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
qwe13579
V2EX  ›  MySQL

mysql 多语言搜索的一个困惑,麻烦兄台给点思路,头大了

  •  
  •   qwe13579 · Apr 29, 2020 · 2383 views
    This topic created in 2349 days ago, the information mentioned may be changed or developed.

    直接用例子来说明,比如有下面这个表

    id | title_en | title_tr 
    
     1 |    sun   |    gün
    
     2 |    gun   |    tabanca
    

    因为是多语言网站,title_en 、title_tr 保存着商品的英文标题和土耳其语标题,并且在这两个字段上创建了全文本索引。

    现在有用户来搜索商品关键字 gun ,使用下列 sql 语句在数据库中查询相关商品,两行都会出现在结果集中

    WHERE MATCH (title_en,title_tr) against ("gun" in boolean MODE)
    

    另外一个用户搜索商品关键字 gün,同样两行都会出现在结果集中

    WHERE MATCH (title_en,title_tr) against ("gün" in boolean MODE)
    

    这样的结果与期望不符, 期望的结果是:搜索 gün 、Gün 、GÜN 等只有第一行出现在结果中;而搜索gun 、GUN 、GuN则只有第二行结果出现在结果中。

    请问大家这种需求要怎么实现啊?我基本功不扎实,请大家给点解决方案和思路。老板看同行的网站完美解决了这个问题。疫情期间不想失业啊、啊、啊、、

    2 replies  •  2020-05-02 23:42:27 +08:00
    qwe13579
        1
    qwe13579  
    OP
       Apr 29, 2020
    这种情况还多 比如 比如 a 和á、e 和é、i 和í 。 有办法区别吗
    qwe13579
        2
    qwe13579  
    OP
       May 2, 2020
    一直没人回答,只能自己回答一下,给有缘人一点帮助。这是一个大小写不区分,但重音(变音)区分的问题。有两个解决办法:1 、直接上 mysql8 完美解决 2 、如果由于各种原因无法升级,可以修改 mysql5.7 源文件的校对函数,然后重新编译,但感觉很繁琐而且容易出错
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2246 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:14 · PVG 18:14 · LAX 03:14 · JFK 06:14
    ♥ Do have faith in what you're doing.