質問するログイン新規登録

質問編集履歴

2

(蛇足ですが)追記しました

2016/09/20 07:59

投稿

takushi168
takushi168

スコア228

title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,7 @@
10
10
  MySQLのバージョンは5.6.17です。
11
11
 
12
12
  MroongaやGroongaは使用しておらず、
13
- MeCabで形態素解析を行った日本語をINSERTしています。
13
+ MeCabで形態素解析を行った日本語をスペース区切りでINSERTしています。
14
14
  (直接関係ない気がしますが、MeCabのバージョンは0.996です)
15
15
 
16
16
 
@@ -38,4 +38,22 @@
38
38
  -- MATCH~AGAINST検索②:ヒットしない
39
39
  -- 実際に用いたい構文は↑ですが、こちらでもNGでした
40
40
  SELECT * FROM `foo` WHERE MATCH(`bar`) AGAINST ('????')
41
+ ```
42
+
43
+ ---
44
+ **<追記>**
45
+
46
+ 「なんとなく思っただけ」レベルなのですが…
47
+ そういえば文字セットやバイト数に関係なく、記号類は同じくヒットしない状態なので、
48
+ 4バイト文字もそのように扱われているのでは…とも思いました。
49
+ (これも環境など何か影響している可能性がありますが)
50
+
51
+ ```sql
52
+ -- `foo`.`bar`に「☆」という値をもつレコードがあるとします
53
+
54
+ -- LIKE検索:ヒットする
55
+ SELECT * FROM `foo` WHERE `bar` LIKE '%☆%'
56
+
57
+ -- MATCH~AGAINST検索:ヒットしない
58
+ SELECT * FROM `foo` WHERE MATCH(`bar`) AGAINST ('+☆' IN BOOLEAN MODE)
41
59
  ```

1

タイトル・本文で言葉足らずだった点を追記 / 環境を追記

2016/09/20 07:59

投稿

takushi168
takushi168

スコア228

title CHANGED
@@ -1,1 +1,1 @@
1
- MySQLにて、utf8mb4の全文検索ない
1
+ MySQLの全文検索で、4バイトUTF-8文字がヒットしない
body CHANGED
@@ -1,5 +1,5 @@
1
1
  文字セットがutf8mb4のあるテーブルに対して
2
- 全文検索(MATCH~AGAINST~構文)を行いたいのですが、ヒットしてくれません。
2
+ 全文検索(MATCH~AGAINST~構文)を行いたいのですが、4バイト文字がヒットしてくれません。
3
3
  ヒットさせるにはどうすればよいでしょうか。
4
4
 
5
5
  何かご存じの方、お力添えお願いいたします。
@@ -9,6 +9,11 @@
9
9
 
10
10
  MySQLのバージョンは5.6.17です。
11
11
 
12
+ MroongaやGroongaは使用しておらず、
13
+ MeCabで形態素解析を行った日本語をINSERTしています。
14
+ (直接関係ない気がしますが、MeCabのバージョンは0.996です)
15
+
16
+
12
17
  テーブル(「foo」とします)の設定:
13
18
  - MyISAM
14
19
  - 照合順序はutf8mb4_general_ci