[groonga-dev,04295] pgroongaの数字前方一致検索について

Back to archive index

tak_kaz24****@yahoo***** tak_kaz24****@yahoo*****
2017年 2月 22日 (水) 16:37:39 JST


お世話になっています。高橋と申します。
先ほどのメールがWEB上文字化けしていたので念のため再送します
PGroongaのWindows版を使用して全文検索システムを構築すべく動作検証をしております。
数字形式の前方一致検索について以下のような事象が発生していますので、
お手数ですが回答願えますでしょうか。

■環境
Windows Server 2008 R2 Standard SP1(64bit)
PostgreSQL9.5.5-1(Windowsインストーラ版使用)
pgroonga1.1.9(Windowsバイナリ版使用)

■事象
数字形式のデータをテーブルに格納しSQLを発行したところ、
前方一致で該当する場合と該当しない場合があります。
特にPostgreSQLやpgroongaのログにエラーは出力されていません。

■実際のテーブル、データ
CREATE TABLE memos (
 id integer,
 content text
);

CREATE INDEX pgroonga_content_index ON memos USING pgroonga (content);
※デフォルトのTokenBigram、NormalizerAutoの環境

INSERT INTO memos VALUES (1, '123');
INSERT INTO memos VALUES (2, '12345');
INSERT INTO memos VALUES (3, '1234567890');

■SQL実行時の結果
以下のようなSQLで1から6のようなパターンで検索を実施

SELECT id FROM memos WHERE content %% '123'

1.contentを1で検索→id1、2、3が検索に該当
2.contentを12で検索→id1、2、3が検索に該当
3.contentを123で検索→id1が検索に該当
4.contentを1234で検索→id2、3が検索に該当
5.contentを12345で検索→id2が検索に該当
6.contentを123456で検索→id3が検索に該当
※以下1234567890まで桁を増やしていく場合もid3が検索に該当

■想定結果
以下のような検索結果になる想定でした。

3.contentを123で検索→id1、2、3が検索に該当
5.contentを12345で検索→id2、3が検索に該当

前方一致、中間一致、後方一致に関して以下のような想定でしたが、
数字の前方一致に関してはSQLの結果から検索に該当する場合と該当しない場合があり、
ばらつきがあるように見受けられますのでお手数ですが仕様をご教示願えますでしょうか。

・英字、数字:前方一致のみ可能で中間一致、後方一致は出来ない
・ひらがな、カタカナ、漢字、記号:前方一致、中間一致、後方一致可能




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