[groonga-dev,04717] Re: ハイフン始まりの文字列で検索すると全件ヒットする

Back to archive index
Kouhei Sutou kou****@clear*****
2018年 12月 6日 (木) 13:50:29 JST


須藤です。

pgroonga_query_escape()
https://pgroonga.github.io/ja/reference/functions/pgroonga-query-escape.html

を使うと特殊な文字をエスケープできます。
アプリケーションで独自にやると漏れがでることが多いので可能な
らPGroongaが提供している機能を使った方がよいです。


In <89144****@yahoo*****>
  "Re: [groonga-dev,04716] Re: ハイフン始まりの文字列で検索すると全件ヒットする" on Thu, 6 Dec 2018 13:33:30 +0900,
  川上 <hakuh****@yahoo*****> wrote:

> 川上です
> 
> 
> あー、そうなのですね。。
> 
> 認識不足でした、ありがとうございます。
> 
> 
> 現状、半角スペースによるAND検索や、「OR」を使用してのOR検索を実現して
> いるので、
> 
> &@~ のままでいこうかとおもいます。
> 
> 
> ハイフン始まりやプラス始まりの場合は、ハイフンやプラスを削除することで
> 乗り切ろうかと思います。
> 
> 
> 以上、よろしくお願いします。
> 
> 
> On 2018/12/06 9:57, Kouhei Sutou wrote:
>> 須藤です。
>>
>> In <8e319****@yahoo*****>
>>    "[groonga-dev,04715] ハイフン始まりの文字列で検索すると全件ヒットする"
>>    on Wed, 5 Dec 2018 22:03:45 +0900,
>>    川上 <hakuh****@yahoo*****> wrote:
>>
>>> PGroonga2.1.6を使っているのですが、ハイフン始まりの文字列で検索すると
>>> 全件ヒットするような挙動になります。
>>> ハイフン始まりの場合は何か特別な挙動を行うのでしょうか?
>> ハイフンは「それ以外」を表します。
>>
>> http://groonga.org/ja/docs/reference/grn_expr/query_syntax.html#logical-not
>>
>> なので、'-333333333'は「333333333」以外にマッチします。今回
>> のケースでは「333333333」ではなにもマッチしないということな
>> ので、'-333333333'はすべてマッチするということになります。
>>
>>> また、他にも似たような挙動をする記号等はあるのでしょうか?
>> ↑のURLのページ内にありますが、「+」や「OR」や「スペース」も
>> 特別な挙動をします。そういうもろもろが必要ないのであれば&@~
>> ではなく&@を使う方がよいです。&@は指定したキーワードそのもの
>> で全文検索します。ただし、ANDやORやNOTなどは使えません。
>>
>>



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