m-dob****@rozet*****
m-dob****@rozet*****
2016年 4月 1日 (金) 11:23:54 JST
須藤さん ありがとうございました!それで区別ができるようになりました。 ドブリン マイケル Kouhei Sutou <kou****@clear*****>さん: > 須藤です。 > > In <JD201****@rozet*****> > "[groonga-dev,03998] Re: FULLTEXT検索は、大文字と小文字の区別ができ る?" on Thu, 31 Mar 2016 18:59:28 +0900, > m-dob****@rozet***** wrote: > > >> 実際に試したSQL(CREATE TABLE, INSERT, SELECT)とその結果を > >> 教えてもらえませんか?こちらでも確認したいです。 > > > > 下記の通りになります。 > > ありがとうございます。 > > > SELECT * FROM test.taiyaku_data_3` WHERE Match(EN_TEXT_JUNKANZEN_ ICCHI) > > against > > ('\"" Be worth "\"' in boolean mode) LIMIT 1; > > これが問題です。スキーマは問題ありません。 > > ('+"Be worth"' in boolean mode) > > としてください。 > > ('\"" Be worth "\"' in boolean mode) > > は > > * 「""」(ダブルクォート2つ) > * 「Be」 > * 「worth」 > * 「""」(ダブルクォート2つ) > > の「どれか1つ」にマッチしたら全体がマッチする、というクエリー > です。 > > 間違いポイントは2つです。 > > 1. ダブルクォートのエスケープを間違っている > 2. 明示的にAND検索にしていない > > 1.はそのとおりです。 > > SELECT '\"" Be worth "\"'; > > としてMySQLにどのように評価されるか確認するのがよいと思いま > す。 > > mysql> SELECT '\"" Be worth "\"'; > +----------------+ > | "" Be worth "" | > +----------------+ > | "" Be worth "" | > +----------------+ > > 2.は、MySQLの全文検索はデフォルトでOR検索なのでMroongaでもデ > フォルトでOR検索になるようにしています。 > > ('+"Be worth"' in boolean mode) > > というようにキーワード(あるいはフレーズ)の先頭に「+」をつ > けて明示的にAND検索になるようにしてください。 > > キーワード(あるいはフレーズ)が1つのときはあってもなくても > 挙動は変わりませんが、2つ以上になると挙動がかわるのでいつで > もつけておくのがよいと思います。 > > あるいは次のように「D+」プラグマを使ってください。 > > ('*D+ "Be worth"' in boolean mode) > > http://mroonga.org/ja/docs/reference/full_text_search/boolean_mode.html#boolean-mode-pragma-d-plus > > > -- > 須藤 功平 <kou****@clear*****> > 株式会社クリアコード <http://www.clear-code.com/> > > Groongaベースの全文検索システムを総合サポート: > http://groonga.org/ja/support/ > パッチ採用 - プログラミングが楽しい人向けの採用プロセス: > http://www.clear-code.com/recruitment/ > リーダブルコードワークショップ: > http://www.clear-code.com/services/code-reader/readable-code-workshop.html > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.osdn.me/mailman/listinfo/groonga-dev