[groonga-dev,03865] PGROONGAでの等価条件&不等価条件の指定方法

Back to archive index

高見 直輝 takam****@orega*****
2016年 1月 20日 (水) 10:23:55 JST


高見です。

@@演算子を使用してGROONGAの等価条件と不等価条件をそれぞれ行
おうとしているのですが、意図した結果になりません。
http://groonga.org/ja/docs/reference/grn_expr/query_syntax.html#equal-condition

テーブル定義などは[groonga-dev,03855]と同じです。
テーブルには以下のレコードが存在しています。
"\st","新しいフォルダー"
"\st","新しいフォルダー\desktop.ini"
"\st","00201-00300"
※以下のパラメータを設定した状態で検証しました。
SET search_path = "$user", public, pgroonga, pg_catalog;
SET enable_seqscan = off;

まずは等価条件から。
先述のレコードの中から、『"\st","新しいフォルダー"』のみを取得するため、
以下のSQLを実行しました。
select lower(pathcombine(rootdir::text, path)) as tmp from TEST_TABLE
 where lower(pathcombine(rootdir,path)) @@ '"\\st\\新しいフォルダー"';
この結果、以下のレコードが取得されました。
\st\新しいフォルダー\desktop.ini
\st\新しいフォルダー

次に、不等価条件を。
『"\st","00201-00300"』のみを取得するため、以下のSQLを実行しました。
select lower(pathcombine(rootdir::text, path)) as tmp from TEST_TABLE
 where lower(pathcombine(rootdir,path)) @@ '!"\\st\\新しいフォルダー"';
この結果は0件でした。

上記の各SQLの誤りがわかりましたら、教えてください。

なお、各SQLを実行したときにPGROONGAのデバッグログに何も出力されませんで
した。
これは、そもそもPGROONGAのインデックスが使われていないということなのでしょ
うか?

----------------------------- 
高見 直輝 <takam****@orega*****>
株式会社オレガ
TEL:03-3267-0150
FAX:03-3267-0180




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