web-dev-qa-db-ja.com

Postgres <->演算子は何をしますか?

私は マテリアライズドビューに関するPostgresのドキュメント を読んでいて、1つの例では次のように使用します。

SELECT Word FROM words ORDER BY Word <-> 'caterpiler' LIMIT 10;

自分のデータベースで同様のクエリを実行しようとしましたが、エラーが発生しました。

[42883] ERROR: operator does not exist: character varying <-> unknown

私は(おそらく)演算子を使用する必要はありませんが、それが何をするのか知りたいだけです。

メモ

  • 私はドキュメント(9.3)と同じバージョンを実行しています
  • 私は質問をグーグルで試しましたが、Googleは<->引用符で囲んでも。
6

これは、追加モジュール pg_trgm からの「距離」演算子であると想定されています。

ドキュメントごと:

text <-> text   real    Returns the "distance" between the arguments, that is one minus the similarity() value.

これを使用するには、まず次のようにモジュールをインストールする必要があります。

CREATE EXTENSION pg_trgm;

詳細:

理論的には、十分な権限を持つ任意のユーザーが CREATE OPERATOR -リンク先の例ではありません。

9