MySQL Bugs: #79977: utf8mb4_unicode_520_ci don't make sense for Japanese FTS
* 本質的には MySQL Bugs: #76553: Sushi-Beer issue of MySQL with utf8mb4 の関連。
* Unicode実装が不完全だから起こっている問題。
* 丸め問題
* motherを意味する書き方に、はは(ひらがな)とハハ(カタカナ)とハハ(半角カタカナ)があって、
* これらは(文字の形は違うけど)同じ音で同じ意味だから、大概の場合同じ文字として扱ってくれると嬉しい。
* 病院美容院問題
* hospitalを意味する"びょういん"とheir salonを意味する"びよういん"
* "ょ"と"よ"は文字の形は似てるけど、ほとんどの場合これは違う意味を持つから区別しないといけない。
* ハハパパ問題
* Bug #76553でも説明されてるけど、ハハ(濁音なし)はmother、ババ(濁点)は"grand mother"、パパ(半濁点)は"daddy"を意味する。
* これらは区別されないと困る。超困る。
* 最後に半角全角問題
* "MySQL"と"MySQL"は同じに扱いたいよね。
* Hiragana-Katakanaと半角全角を区別しちゃうのは、不便だけど我慢できる。
* でも拗音促音と濁点半濁点を区別 *されない* のは(特に全文検索の側面で)機能要件を満たせない。LIKE演算子でもそうだけど。
* 「びょういん」って検索して美容院が結果に含まれたら変でしょ?
* あと、これ、UNIQUE制約をぶっ壊す可能性があるのよね。
* UNIQUE KEY(家族関係)って制約があって、俺には母親がいるからハハって入れて、俺に父親がいるからパパって入れようとすると、エラるよね? (いわゆる kamipoさんのハハパパ問題 )
表にまとめるとこんな感じ。ホントはutf8mb4_japanese_ciが欲しいところだよねって。
| | utf8mb4_bin | utf8mb4_general_ci | utf8mb4_unicode_ci | utf8mb4_unicode_520_ci| |--------------------|-------------|--------------------|--------------------|-----------------------| | Hiragana-Katakana | cs (unkind) | cs (unkind) | ci (good) | ci(good) | | Youon | cs (good) | cs (good) | ci (critical) | ci(critical) | | Dakuten-Handakuten | cs (good) | cs (good) | ci (critical) | ci(critical) | | Wide-Narrow | cs (unkind) | cs (unkind) | ci (good) | ci(good) | | Sushi-Beer | cs | ci | ci | cs |
0 件のコメント :
コメントを投稿