Groonga 7.0.5リリース
今日は肉の日ですね!
Groonga 7.0.5をリリースしました!
それぞれの環境毎のインストール方法: インストール
まず最初にイベントのお知らせから。
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー開催
来月早々に「MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー」が開催されます。
オープンソース全文検索エンジン「Groonga」を組み合わせた全文検索システム開発について、その概要から導入方法までを学べる無料セミナーです。
SQLを使って全文検索システムを構築したい、今のウェブサイトにサジェスト機能を追加したい、コンテンツ更新後すぐ検索結果を反映したい、などの要望があれば参加をオススメします。
日程は以下のとおりです。
- 日時: 2017-08-01(火)14:00 - 16:00
- 場所: 市ヶ谷健保会館・会議室(市ヶ谷)
- 申込ページ: MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
まだ若干名定員に空きがありますよ!
それでは、今月のリリースについて紹介します。
変更内容
主な変更点は以下の通りです。
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でガンガン検索してください!