[groonga-dev,00442] Re: ()~:+><-* などの記号を含んだ文字の検索について

Back to archive index

Yutaro Shimamura yu****@irx*****
2011年 1月 15日 (土) 00:06:32 JST


佐藤さま

しまむらです。

エスケープについてなのですが、文字列としてダブルクオートで囲うことにより利用することが可能です。

ドキュメントのチュートリアルデータを参考に、以下の挙動になります。
http://groonga.org/docs/tutorial/tutorial10.html


囲わない場合(佐藤さまの利用方法の場合)、syntax errorとなってしまいますが、

  > select --table Comments --output_columns "comment,_score" --query "comment:@("
    [[-63,1295017293.32507,0.000623724,"Syntax error! (comment:@()",[["yy_syntax_error","ecmascript.y",19]]],[]]


このように、シングルクオート内でダブルクオートを利用して文字列をクオートすることで検索することができます。

  > select --table Comments --output_columns "comment,_score" --query 'comment:@"("'
    [[0,1295017103.31636,0.000433497],[[[2],[["comment","ShortText"],["_score","Int32"]],["マイクロブログ作ってみました(甘栗むいちゃいました的な感じで)。",1],["@daijiro @tasukuchan ( 登録してみましたよー!",1]]]]


また、クエリ文字列自体をダブルクオート内で表記して検索できます。
  > select --table Comments --output_columns "comment,_score" --query 'comment:@"(甘"'
    [[0,1295017165.62638,0.000138811],[[[2],[["comment","ShortText"],["_score","Int32"]],["マイクロブログ作ってみました(甘栗むいちゃいました的な感じで)。",1],["@daijiro @tasukuchan ( 登録してみましたよー!",1]]]]



上記ではシングルクオート内で囲って表現していますが、
  "\"(\""
このようにダブルクオートをエスケープすることでも大丈夫です。


どうぞよろしくお願いいたします。


On Fri, 14 Jan 2011 22:40:37 +0900 (JST)
佐藤 <yfa02****@nifty*****> wrote:

> お世話になっております、佐藤です。
> 
> 表題の通り、()~:+><-*などの記号を含んだ文字を検索すると、エラーが返ってきます
>> 多分エスケープをしないといけないだろうと思うのですが、具体的にはどのようにエス
> ケープ処理等をすればいいのでしょうか。
> 
> 具体的には以下のようなクエリーをgroongaコマンド経由で実行するとエラーが返って
> きました。
> 
> select Entries --match_columns "body" --limit "10" --query "(" --offset "0"
> 
> [[-63,1295012241.02491,0.000546,"Syntax error! (()",[["yy_syntax_error","ecmas
> cript.y",19]]],[]]
> 
> ちなみに、実際に利用する際には、rroonga経由で以下のように利用したいと考えてお
> ります。
> 
> GroongaBase.groonga_context.select("Entries",
>                            :match_columns => "body",
>                            :query => query,
>                            :limit => per_page,
>                            :offset => per_page * (page - 1)
>                           )
> 
> 
> よろしくお願いします。
> 
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev




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