m-dob****@rozet*****
m-dob****@rozet*****
2015年 1月 22日 (木) 18:20:56 JST
林さん ドブリンです。 > 二重引用をエスケープするには、\\"としてみてください。 それで解決しました。ありがとうございます! ドブリン HAYASHI Kentaro <hayas****@clear*****>さん: > > 林です。 > > 二重引用をエスケープするには、\\"としてみてください。 > > 元のデータを再現できているか怪しいですが、 > > mysql> select * from MY_TABLE; > +----+--------------------------------+ > | id | EN_TEXT | > +----+--------------------------------+ > | 1 | from " redial/dial on phone | > | 2 | from two-sided studio | > | 3 | >From perspective of industry | > +----+--------------------------------+ > 3 rows in set (0.00 sec) > > mysql> select count(1) as counts from MY_TABLE where match (EN_TEXT) against('\\"' in boolean mode); > +--------+ > | counts | > +--------+ > | 1 | > +--------+ > 1 row in set (0.00 sec) > > こんな感じに検索できます。 > > エスケープについては、「mroongaで特殊記号を用いた全文検索を行うときの エスケープ方法」というブログ記事があるので、 > 参考になるかもしれません。 > http://y-ken.hatenablog.com/entry/mroonga-query-escape-string > > どうしてそうするの?という点については普段意識することのない MySQL <-> Mroonga <-> Groongaというレイヤの違いが > あってというあたりが次の記事に書いてあります。 > > mroongaで記号類を含むクエリのシンタックスエラーを回避する方法 > http://qiita.com/groonga/items/0ae7f637525c7b5f2cb1 > > ざっくりいうと途中でクエリのエスケープの解釈がはいるので、Groongaに意 図したクエリを渡すためには > \"でなく\\"としないといけませんよ、ということなんです。 > > > On Wed, 21 Jan 2015 17:41:50 +0900 > m-dob****@rozet***** wrote: > > > ドブリンです。 > > > > > > FULLTEXT検索を使うときに、二重引用をリテラル文字として検索できないよ うで > > す。↓のmysql文を使うときに、 > > > > > > select count(1) as counts from MY_TABLE where match (EN_TEXT) against('" > > "from " redial/dial""' in boolean mode) > > > > この文章しかヒットしないはずなのに、 > > > > from " redial/dial on phone > > > > ↓の文章もヒットしています。 > > > > > > from two-sided studio > > >From perspective of industry > > > > > > テーブルの定義が下記の通りです。 > > > > CREATE TABLE `MY_TABLE` ( > > `id` int(11) NOT NULL AUTO_INCREMENT, > > `EN_TEXT` text NOT NULL, > > PRIMARY KEY (`id`), > > FULLTEXT KEY `key` (`EN_TEXT`) > > ) ENGINE=mroonga DEFAULT CHARSET=utf8; > > > > > > 二重引用をエスケープする方法がありますか? > > > > > > よろしくお願いします。 > > ドブリン > > > > _______________________________________________ > > groonga-dev mailing list > > groon****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev > > > -- > HAYASHI Kentaro <hayas****@clear*****>