質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

1回答

1498閲覧

PostgresSQLの検索結果について

ebifry

総合スコア14

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2018/07/17 02:36

お世話になります。
PostgreSQLで以下のsqlを発行した場合の結果についてご教示いただきたくご質問させていただきます。

環境
OS:ubuntu16.04
PostgreSQL:version9.5
pgroonga :postgresql-9.5-pgroongaパッケージを使用

例として以下のテーブルがあるとして、nameには日本語、英語混在の名前が登録されています。
マルチバイト全文検索対応としてpgroongaのINDEXをnameに作成しています。

table:test
Column | Type | Collation | Nullable |
------------------+--------------------------+-----------+----------+-------
id | integer | | not null |
section_code | character varying(8) | | not null |
name | text | | not null |
kana | text | | not null |
at_date | timestamp with time zone | | |

このname中で「foo」を検索したいと思います。

SQL

1SELECT name FROM test WHERE name &@ 'f'; 2または 3SELECT name FROM test WHERE name LIKE '%f%';

上記のSQLでは、両方とも「foo」は検索にヒットしません。
しかし「f-oo」のような場合はヒットします。


SQL

1SELECT name FROM test WHERE name &@ 'fo'; 2または 3SELECT name FROM test WHERE name LIKE '%fo%';

「fo」2文字にすると検索にヒットします。


この検索結果については、おそらく私が知らないだけで、そういう仕様なのかとも思うのですが・・・、検索可能にする方法等があればご指導いただきたくお願いするしだいです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pgroongaを導入されていますから、LIKE演算子がpgroonga用に置き換えられます。
LIKE演算子

PGroongaは内部的にcolumn LIKE '%キーワード%'条件をcolumn %% 'キーワード'条件に変換します。

PGroongaのインデックスが適用しているtext型用のデフォルトのオペレータークラスは、キーワードがアルファベットのみだった場合、キーワードの一部だけで検索してもヒットしません。

リファレンスを確認されるといいですよ。

投稿2018/07/17 03:14

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ebifry

2018/07/17 03:25

ありがとうございます!。 恥ずかしながら、LIKEが置き換わるのを知りませんでした。 リファレンスをよく読むのは、大事ですね・・・反省いたします。 お世話になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問