Groonga 6.0.5リリース
Groonga 6.0.5をリリースしました!
それぞれの環境毎のインストール方法: インストール
変更内容
主な変更点は以下の通りです。
fuzzy_search
でmax_distance
を指定しやすくquery_expand
コマンドの追加- ソースからのビルド時間の短縮
fuzzy_search
でmax_distance
を指定しやすく
今回のリリースでは、fuzzy_search
でmax_distance
が指定しやすくなりました。
fuzzy_search
自体はGroonga 6.0.0で導入された、曖昧検索機能を実現するための関数です。
この関数にはいくつか引数があって、第3引数にオブジェクトリテラルを渡すことで、挙動をカスタマイズできるようになっていました。
今回の変更では、第3引数にmax_distance
を直接指定できるようになりました。従来のオブジェクトリテラル形式も指定できます。
max_distance
は数文字程度の違いなら同じとみなすためのパラメータ(編集距離)です。この値を調整することで曖昧検索の度合いを変えることができます。よく使うパラメータなので、より指定しやすくしました。
Groonga 6.0.4以前:
fuzzy_search(column, _key, {"max_distance": 2})
Groonga 6.0.5以降:
fuzzy_search(column, _key, 2)
query_expand
コマンドの追加
今回のリリースでは、query_expand
コマンドを追加しました。
Groongaにはクエリに含まれる同義語を展開してくれるプラグインがあります。QueryExpanderTSVを使うとそれができるのですが、展開した結果がどうなるか、事前に確認することはできませんでした。
もちろん、同義語はTSVで定義しているので、そちらの定義通りになるはずなのですが、きちんとGroonga側にそのTSVが反映されていることが確認できるというのが嬉しいポイントです。
クエリ展開を使っていて、どうもうまく検索できないというときは、まずquery_expand
コマンドで期待通りに展開されるか確認してみてください。
query_expand
は次のようにして使います。例えば、同義語のファイルの内容が次のとおりだとします。
% cat synonyms.tsv
# -*- coding: utf-8 -*-
#
# key[TAB]synonym1[TAB]synonym2[TAB]...
#
groonga groonga rroonga mroonga
きちんと展開されるか確認してみましょう。
> plugin_register query_expanders/tsv
[[0,1467092787.938153,0.0003046989440917969],true]
> query_expand QueryExpanderTSV groonga
[[0,1467092794.028075,0.0001063346862792969],"((groonga) OR (rroonga) OR (mroonga))"]
groonga
が期待どおりに((groonga) OR (rroonga) OR (mroonga))
というOR検索のクエリに展開されていることがわかります。
ソースからのビルド時間の短縮
今回のリリースでは、ソースからのビルド時間が短縮されました。 バイナリパッケージの提供されていない環境でGroongaを使おうとしている場合や、スナップショット版を試すために自分でソースからビルドしている場合には朗報ですね。他にもRroongaをインストールするときに開発パッケージをインストールしていない or 開発パッケージが提供されていない環境で使いたいときにも嬉しいですね。
ざっと試してみたところ、手元の環境(CPU:Core i5-4210U メモリ:8GB)でGroonga 6.0.4をビルドするのに、これまで11分程度かかっていたのが、Groonga 6.0.5では7分程度になりました。 新しいバージョンのUnicodeをサポートしやすくする過程で短縮ができました。ただし副産物としてバイナリサイズが少々増えています。
お知らせ
来月以降、以下のイベントが予定されています。Groongaで学ぶ全文検索は今週金曜日開催です。
- Groongaで学ぶ全文検索 2016-07-01
- 2016-07-01(金)20:00 - 22:30 東京都渋谷区広尾1-1-39 恵比寿プライムスクエアタワー20階 (株式会社イーライセンスシステムズ)
- 予習復習なしで全文検索とGroongaについて学ぶことができるイベントです。内容は参加者にあわせてその場で決めるので、前の回に参加していないとついていけない、ということはありません。
興味があるイベントがあればぜひご参加ください!
さいごに
6.0.4からの詳細な変更点は6.0.5リリース 2016-06-29を確認してください。
それでは、Groongaでガンガン検索してください!