BloGroonga

2017-07-29

Groonga 7.0.5リリース

今日は肉の日ですね!

Groonga 7.0.5をリリースしました!

それぞれの環境毎のインストール方法: インストール

まず最初にイベントのお知らせから。

MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー開催

来月早々に「MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー」が開催されます。

オープンソース全文検索エンジン「Groonga」を組み合わせた全文検索システム開発について、その概要から導入方法までを学べる無料セミナーです。

SQLを使って全文検索システムを構築したい、今のウェブサイトにサジェスト機能を追加したい、コンテンツ更新後すぐ検索結果を反映したい、などの要望があれば参加をオススメします。

日程は以下のとおりです。

まだ若干名定員に空きがありますよ!

それでは、今月のリリースについて紹介します。

変更内容

主な変更点は以下の通りです。

  • dump コマンドに --sort_hash_table オプションを追加
  • math_abs 関数のサポート
  • Ubuntu 16.10 (Yakkety Yak)のサポート終了

dumpコマンドに–sort_hash_tableオプションを追加

これまで、hashテーブルをダンプしたときには、結果はソートされていませんでした。しかし、dump結果を比較して差分をチェックしたいという要望があったので、今回のリリースではソートするためのオプションとして --sort_hash_table をサポートしました。

ソートしたい場合には、 --sort_hash_table yes をdumpコマンドのオプションに指定するようにしてください。オプションを指定しない場合には従来どおりソートされません。

以下はShopsテーブルをダンプする例です。

groonga testdb/db "dump Shops --sort_hash_table yes" > sorted.dump

math_abs関数のサポート

今回のリリースでは、絶対値でソートしたいという要望に応えて、 math_abs 関数をサポートしました。

プラグインとして追加しているので、事前に登録が必要です。

plugin_register functions/math

都市のデータを特定の都市からの時差が少ない順にソートして表示したいとします。

それに使うサンプルのスキーマとデータは以下の通りとします。

table_create City TABLE_HASH_KEY ShortText
column_create City utc COLUMN_SCALAR Int32

load --table City
[
{"_key": "Tokyo",    "utc": 9},
{"_key": "New York", "utc": -4},
{"_key": "Paris",    "utc": 2}
]

このデータから、シンガポール(UTC+8)との時差が少ない都市を順に表示するには次のようなクエリーを実行します。絶対値で比較するのに math_abs()を使います。

すると、以下の様なクエリーで仕事場から近いお店をソートして得ることができます。

select City \
  --filter true \
  --output_columns '_key, utc, _score' \
  --scorer '_score = math_abs(8 - utc)' \
  --sort_keys _score

math_abs()がない場合に自乗するという回避策をとらなくてもよくなります。

Ubuntu 16.10(Yakkety Yak)のサポート終了

今回のリリースから、Ubuntu 16.10(Yakkety Yak)向けパッケージの提供を終了しました。7/20にUbuntu 16.10がEOLとなったためです。

さいごに

7.0.4からの詳細な変更点は7.0.5リリース 2017-07-29を確認してください。

それでは、Groongaでガンガン検索してください!