河野 隆志
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*****>