[groonga-dev,04420] [ANN] Groonga 7.0.5

Back to archive index

Kentaro Hayashi hayas****@clear*****
2017年 7月 29日 (土) 08:36:35 JST


今日は肉の日ですね。

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

  http://groonga.org/ja/blog/2017/07/29/groonga-7.0.5.html

細かな変更点についてはニュースをご確認下さい。

  http://groonga.org/ja/docs/news.html#release-7-0-5

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

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

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

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

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

* 日時: 2017-08-01(火)14:00 - 16:00
* 場所: 市ヶ谷健保会館・会議室(市ヶ谷)
* 申込ページ: https://groonga.doorkeeper.jp/events/62741

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


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

# 変更内容

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

  * 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

すると以下の結果が得られます。

  [
    "Tokyo",
    9,
    1
  ],
  [
    "Paris",
    2,
    6
  ],
  [
    "New York",
    -4,
    12
  ]

期待通り、時差の少ない都市が順に表示されていることがわかります。
math_abs()を使うと、自乗するという回避策をとらなくてもよくなります。

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

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

## 改良

* [httpd] バンドルしているnginxのバージョンを1.13.3に更新しました。セ
  キュリティーに関する修正(CVE-2017-7529)を含んでいます。

* [load] UInt64の最大値をロードできるようにしました。以前のバージョン
  では意図せず0に変換されてしまっていました。

* 以下のAPIを公開しました。

  * grn_window_get_size() [GitHub#725] [村上さんがパッチ提供]

* [math_abs] 絶対値を計算するための math_abs() 関数を追加しました。
  [GitHub#721]

* grn_default_logger_set_path() と grn_default_query_logger_set_path()
  をスレッドセーフにしました。

* [Windows] バンドルしているpcreを8.41に更新しました。

* [normalize] エラー時に冗長な空文字列が出力されないようにしました。

* [functions/time] 0除算が発生したときにエラーメッセージを出力するよう
  にしました。 [GitHub#733] [村上さんがパッチ提供]

* [windows] ERROR_NO_SYSTEM_RESOURCES エラーを
  GRN_RESOURCE_TEMPORARILY_UNAVAILABLE にマッピングするようにしました。
  以前は rc=-1 をエラーコードとして返していました。ただし実際にどんな
  問題がおきたのかこれではわかりにくいので、 今回の修正では rc=-12 を
  返すようにしています。

* [functions/min][functions/max] ベクターカラムをサポートしました。こ
  れでカラムがスカラーなのかベクターなのか気にせず使えるようになりまし
  た。 [GitHub#735] [村上さんがパッチ提供]

* [dump] --sort_hash_table オプションをサポートしました。ハッシュテー
  ブルの _key でのソートには --sort_hash_table yes を指定します。

* [between] インデックスカラムを指定できるようになりました。
  [GitHub#740] [村上さんがパッチ提供]

* [load] Apache Arrow 0.5.0 以降をサポート。

* [エラーメッセージの解析方法] エラーメッセージの解析方法のドキュメン
  トを追加しました。

* [Debian GNU/Linux] ソースからビルドするときに必要なパッケージのリス
  トを更新しました。

* [Ubuntu] Ubuntu 16.10(Yakkety Yak)のサポートをやめました。2017年7
  月20日でサポートが切れた(EOLになった)ためです。

## 修正

* テキスト型( ShortText など)のベクターカラムに対するインデックスを正
  しく構築できるようにしました。この修正でインデックス更新後に全文検索
  でマッチしない問題が解決します。 [GitHub#494]

* [thread_limit] thread_limit?max=1 というリクエストが同時にきたときに
  デッドロックが発生する問題を修正しました。

* [groonga-httpd] デフォルトのPIDのパスと再起動時に想定しているPIDのパ
  スがあっていない問題を修正しました。そのせいで groonga-httpd の再起
  動に失敗していました。 [GitHub#743] [sozakiさんが報告]

## 感謝

* 村上さん
* sozakiさん

--
Kentaro Hayashi <hayas****@clear*****>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 無し
型:         application/pgp-signature
サイズ:     833 バイト
説明:       無し
Download 



groonga-dev メーリングリストの案内
Back to archive index