[groonga-dev,04424] Re: &@~オペレーターのUndefined function: 7 ERROR: operator does not exist:エラー

Back to archive index

Kentaro Hayashi hayas****@clear*****
2017年 8月 2日 (水) 11:40:55 JST


林です。

On Mon, 31 Jul 2017 19:39:15 +0900 (JST)
s400t****@yahoo***** wrote:

> MLみなさん
> こんにちは。
> 
> 1っか月+にまたpgroonga試して見ました。
> 二つ単語検索のOR条件に&@~オペレーター使おうとしていますが、エラーになります。
> 


> 例) target_col列の'東京'又は'大阪'をヒットさせて、一覧取得しようとしています。
> 
> https://pgroonga.github.io/reference/operators/query-v2.htmlの「Operator classes」のところ:
> 
> You need to specify one of the following operator classes to use this operator:と書いていますが、Usageのところにどうやってspecifyするのか、例がないのでこの以降どうすればよいのか、わかりません。前のバージョン(@@オペレーター)の時は検索出来ていました。
> 
> 上記の例で、target_colの型は「text」で、そのフィールドのindexを作っています。
> (CREATE INDEX target_col _index ON db名 USING pgroonga (target_col );)

ということであれば、target_col &@~ "東京 OR 大阪" を指定してください。
(前のバージョンでできていたというのはちょっとよくわからないのですが。。。)

> 実行したSQL:
> $stmt = $pdo->prepare("SELECT 項目1、... FROM db名 WHERE target_col &@~ :keyword1 OR :keyword2");
> 
> $stmt->bindValue(':keyword1', '東京');
> 
> $stmt->bindValue(':keyword2', '大阪');
> 
> $stmt->execute();

なので、上記の箇所も"東京 OR 大阪"となるように以下のようにするとよいはずです。

$stmt = $dbh->prepare("SELECT target_col FROM memos WHERE target_col &@~ :keyword");
$stmt->bindValue(':keyword', '東京 OR 大阪');
$stmt->execute();

サンプルとしては↓な感じでしょうか。

  <?php

  $dsn = 'pgsql:dbname=pgroonga_test host=localhost port=5432';
  $user = 'postgres';
  $password = 'postgres';

  try{
    $dbh = new PDO($dsn, $user, $password);

    $stmt = $dbh->prepare("SELECT target_col FROM memos WHERE target_col &@~ :keyword");
    $stmt->bindValue(':keyword', '東京 OR 大阪');
    $stmt->execute();
    while ($row = $stmt->fetch()) {
      var_dump($row);
    }
  } catch (PDOException $e) {
    print('Error:'.$e->getMessage());
    die();
  }
  ?>


-- 
Kentaro Hayashi <hayas****@clear*****>
-------------- next part --------------
$B%F%-%9%H7A<00J30$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
$B%U%!%$%kL>(B: $BL5$7(B
$B7?(B:         application/pgp-signature
$B%5%$%:(B:     833 $B%P%$%H(B
$B @ bL@(B:       $BL5$7(B
Download 



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