[groonga-dev,03651] Re: select文に関して

Back to archive index

takah****@yahoo***** takah****@yahoo*****
2015年 11月 11日 (水) 15:34:52 JST


株式会社クリアコード
須藤 様

お世話になっております。

下記の件で御座いますが、
ご回答誠に有難う御座います。

SQL一式の件、承知致しました。
またお手間取らせてしまい、申し訳御座いませんでした。

まだ、理解出来ていない部分もあるのですが、
頂きましたサイトを確認しつつ、理解の向上に努めます。

以上、引き続き何卒宜しくお願い致します。



----- Original Message -----
> From: Kouhei Sutou <kou****@clear*****>
> To: groon****@lists*****
> Cc: 
> Date: 2015/11/11, Wed 11:59
> Subject: [groonga-dev,03649] Re: select文に関して
> 
> 須藤です。
> 
> In <53122****@web30*****>
>   "[groonga-dev,03648] Re: select文に関して" on Wed, 11 Nov 2015 10:53:59 
> +0900 (JST),
>   takah****@yahoo***** wrote:
> 
>>  下記、ご連絡頂きまして誠に有難う御座いました。
>>  また、既出である事、大変申し訳御座いませんでした。
> 
> 大丈夫です!
> 
> (だれか、メーリングリストでのやりとりで明らかになった知見を
> 参照しやすいようにまとめてくれるとうれしいです!)
> 
>>  ---------------------------------------
>>  ■修飾子の省略の挙動に関して
>>  SELECT * FROM mail00.mail
>>  match(subject) against('ビジネス 最大' IN BOOLEAN MODE)
>> 
>>  上記はビジネスor最大の論理式で間違い御座いませんでしょうか。
>>  また('*DOR ビジネス 最大' IN BOOLEAN MODE)と同様の挙動で
>>  認識相違御座いませんでしょうか。
> 
> はい、その通りです。
> 
> ただ、↑の中で「+」を使った場合の挙動はMySQL標準の挙動(*)と
> は異なるので注意してください。
> (*) http://dev.mysql.com/doc/refman/5.6/ja/fulltext-boolean.html
> 
> 詳細は↓のスレッドを参照してください。
>   https://osdn.jp/projects/groonga/lists/archive/dev/2014-October/002856.html
> 
>>  ■特殊記号に関して
>>  「こんにちは こんばんわ”''()\」という文言に対して
>>  where match(subject) against('+"()"' IN BOOLEAN MODE)
>>  と書くと上手く抽出出来ず、抽出方法や
>>  特殊記号にあたる文字が何であるかと、
>>  確認したく、自分の探し方が悪いのか、
>>  上手くリファレンスが探せず、
>>  特殊文字の範囲、扱いに関して、
>>  URLでも構いませんので、ご教示頂ければ幸いで御座います。
> 
> これは特殊記号のエスケープはちゃんとできていて、問題は
> TokenMecabを使っていることです。
> 
> ↓というようにmroonga_commandでtable_tokenizeを実行するとど
> のようなトークンになるかがわかります。この場合は「''()\\」で
> ひとつのトークンになっているため「''()\\」そのものでしかヒッ
> トせず、「()」のように中にある一部の文字列ではヒットしません。
> 
> ----
> USE mysql;
> DROP TABLE IF EXISTS mail;
> SET NAMES utf8mb4;
> CREATE TABLE mail (
>   subject text,
>   FULLTEXT INDEX (subject) COMMENT 'tokenizer "TokenMecab"'
> ) ENGINE=Mroonga DEFAULT CHARSET utf8mb4;
> 
> SELECT mroonga_command('table_tokenize mail-subject 
> "こんにちは こんばんわ”\\\'\\\'\\\(\\\)\\\\" 
> --mode ADD');
> -- [
> --   {
> --     "value": "こんにちは",
> --     "position": 0,
> --     "force_prefix": false
> --   },
> --   {
> --     "value": "こんばんわ",
> --     "position": 1,
> --     "force_prefix": false
> --   },
> --   {
> --     "value": "”",
> --     "position": 2,
> --     "force_prefix": false
> --   },
> --   {
> --     "value": "''()\\\\",
> --     "position": 3,
> --     "force_prefix": false
> --   }
> -- ]
> 
> あらゆる部分文字列でヒットさせたい場合は前のメールに書いた
> TokenRegexpを使ってください。使えるトークナイザーについては
> ↓を参照してください。
>   http://groonga.org/ja/docs/reference/tokenizers.html
> 
> 
> なお、特殊記号については↓を参照してください。
>   http://groonga.org/ja/docs/reference/grn_expr/query_syntax.html#escape
> 
> 
> あと、できればでよいのですが、次からは一部のSQLやSQLの一部で
> はなく、こちらでも試せるSQL一式を教えてもらえると助かります。
> (SQL一式とはこのメールや前のメールで私が提示しているような
> SQLです。)
> 
> 一部のSQLやSQLの一部だけだとこちらで動作確認をするためにSQL
> 一式をこちらで作らなければならなくて面倒なのです。。。
> たぶん、手元には動作するSQL一式があるはずなので、それを提供し
> てもらえればこちらで作りなおさなくてもよくなるのです。。。
> 
> 
> -- 
> 須藤 功平 <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/
> 
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.osdn.me/mailman/listinfo/groonga-dev
> 




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