[groonga-dev,04705] Re: PGroongaでTokenFilterStopWordを使うと検索がヒットしない

Back to archive index
Kouhei Sutou kou****@clear*****
2018年 11月 2日 (金) 16:22:38 JST


須藤です。

In <a673c****@yahoo*****>
  "[groonga-dev,04704] Re: PGroongaでTokenFilterStopWordを使うと検索がヒットしない" on Thu, 1 Nov 2018 19:40:02 +0900,
  川上 <hakuh****@yahoo*****> wrote:

> 「kawa.kami」という検索対象文字列がDBに保存されており、「kawakami」と
> 検索してもヒットさせたいのですが、

あぁ、そういうことですか。
であれば、pgroonga_query_expandは向いていませんでした。
すみません。

そういうやつならノーマライザーで「.」を無視するのがいいんで
すが、そういうノーマライザーはないんですよねぇ。

PostgreSQLレベルでやるなら、こんな感じで式インデックスを使い
ます。

CREATE TABLE item (
  name TEXT
);
INSERT INTO item VALUES ('kawa.kami');

CREATE INDEX pgroonga_item_name_idx ON item
 USING pgroonga ((regexp_replace(name, '\.', '')));
SELECT count(*) FROM item WHERE regexp_replace(name, '\.', '') &@~
                                regexp_replace('kawakami', '\.', '');


-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <https://www.clear-code.com/>

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/
データ処理ツールの開発:
  https://www.clear-code.com/blog/2018/7/11.html



More information about the groonga-dev mailing list
Back to archive index