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