[groonga-dev,00804] 特定の文字の組み合わせでParseError

Back to archive index

河野 隆志 takas****@gmo-m*****
2012年 5月 1日 (火) 18:57:20 JST


河野です。

どういう組み合わせ、どういう文字なのか特定できていませんが、
実行結果がTritonnと違う、またそもそも実行できないという症状が
出ています。詳細は以下参照。

´と▽と`を一文字ずつ個別に検索してみるとmroonga、tritonn双方とも
同じ結果が返ってきますが、´▽`を並べると駄目なようです。

他にもそういう文字列があるのか、パターンとかもう少し調べてみますが、
まずはご報告までに。

テーブル情報
CREATE TABLE `hogehoge` (
  `id` bigint(20) NOT NULL,
  `text` text,
  `cdate` datetime NOT NULL,
  `mdate` datetime NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `index1` (`cdate`),
  FULLTEXT KEY `full_text` (`text`)
) ENGINE=mroonga DEFAULT CHARSET=utf8

CREATE TABLE `hogehoge` (
  `id` bigint(20) NOT NULL,
  `text` text,
  `cdate` datetime NOT NULL,
  `mdate` datetime NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `index1` (`cdate`),
  FULLTEXT KEY `full_text` USING NGRAM, NORMALIZE, 512 (`text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

問題のクエリ1
mroonga> SELECT count(*) FROM hogehoge WHERE MATCH (text) AGAINST ('*D+ ´▽`' IN BOOLEAN MODE);
+----------+
| count(*) |
+----------+
|       22 |
+----------+
1 row in set (0.00 sec)


tritonn> SELECT count(*) FROM hogehoge WHERE MATCH (text) AGAINST ('*D+ ´▽`' IN BOOLEAN MODE);
+----------+
| count(*) |
+----------+
|     1330 | 
+----------+
1 row in set (0.00 sec)

問題のクエリ2
mroongal> SELECT * FROM hogehoge WHERE MATCH (text) AGAINST ('*D+ ´ ▽ `)' IN BOOLEAN MODE) ORDER BY cdate DESC LIMIT 1;
ERROR 1064 (42000): failed to parse fulltext search keyword: <*D+ ´ ▽ `)>: <Syntax error! (´ ▽ `))>

tritonnでは実行可能で、結果も返ってきます。

以上、宜しくお願い致します。

-- 
河野 隆志 <takas****@gmo-m*****>




groonga-dev メーリングリストの案内
Back to archive index