[groonga-dev,03912] Re: クエリー構文のORを小文字で指定する方法

Zurück zum Archiv-Index

高見 直輝 takam****@orega*****
2016年 2月 5日 (金) 16:47:10 JST


高見です。

> https://github.com/pgroonga/pgroonga/blob/master/sql/full-text-search/text/single/query/seqscan.sql
> のデータで
> 
> SELECT id, content
>   FROM memos
>  WHERE content @@ ARRAY_TO_STRING(ARRAY['rdbms','engine'],' OR ');
> 
> こう書いたらうまく検索できました。こちらはどうでしょうか?

検証ありがとうございます。
しかしながら、やりたいのがlower関数の使用なので、この手法だと以下のよう
になり、先述の文字列連結のSQLとあまり変わらなくなってしまいます。
select * from  test where lower(path) @@ ARRAY_TO_STRING(ARRAY[lower('"127"'),lower('"asDf2"'),lower('"Qwer3"')],'OR ')

ただ、関数を使ってワンクッション置くというのが良いヒントになり、以下の
SQLで実現することができました。
select * from  test where lower(path) @@ format(lower('"127"%1$s"asDf2"%1$s"Qwer3"'),' OR ')

これだけではGROONGAと関係ないところで終わってしまうので、当初の
 クエリ構文でORを小文字で指定する方法はあるか?
についての質問は継続させて下さい。
方法が無いようなら、要望として
 論理積や論理否定と同様、論理和記号の導入
を提案します。

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




groonga-dev メーリングリストの案内
Zurück zum Archiv-Index