いまさら Redash の マルチバイト検索対応について調べてみた

f:id:ariarijp:20200831234000p:plain

設定画面にある Feature Flags > Enable multi-byte。

日本のユーザーならオンにしていることが多いと思いますが、この設定をオンにすると内部的には何が起きるのか。

v9.0.0-beta ブランチで確認した結果、答えは「PostgreSQL全文検索の仕組みを使わず、キーワードがクエリ名または説明文に含まれるかを ILIKE で部分一致検索する」でした。

github.com

日本語で全文検索と言えば PGroonga が思いついたのでドキュメントを眺めてみると、PostgreSQL全文検索は英数字のみサポートしていると書いてありました。

Redash が内部的に利用している SQLAlchemy-Searchable が CJK をサポートしていないのかと思っていたのですが、どうやら PostgreSQL全文検索の制約のようです。

PGroonga は Docker イメージも公開されているので、Redash に組み込めるか検証したくなってきました。