いまさら Redash の マルチバイト検索対応について調べてみた
設定画面にある Feature Flags > Enable multi-byte。
日本のユーザーならオンにしていることが多いと思いますが、この設定をオンにすると内部的には何が起きるのか。
v9.0.0-beta ブランチで確認した結果、答えは「PostgreSQL の全文検索の仕組みを使わず、キーワードがクエリ名または説明文に含まれるかを ILIKE
で部分一致検索する」でした。
日本語で全文検索と言えば PGroonga が思いついたのでドキュメントを眺めてみると、PostgreSQL の全文検索は英数字のみサポートしていると書いてありました。
Redash が内部的に利用している SQLAlchemy-Searchable が CJK をサポートしていないのかと思っていたのですが、どうやら PostgreSQL の全文検索の制約のようです。
PGroonga は Docker イメージも公開されているので、Redash に組み込めるか検証したくなってきました。