Kentaro Hayashi
hayas****@clear*****
2016年 6月 29日 (水) 13:04:56 JST
Groonga 6.0.5をリリースしました! http://groonga.org/ja/blog/2016/06/29/groonga-6-0-5.html # 変更内容 主な変更点は以下の通りです。 * fuzzy_searchでmax_distanceを指定しやすく * query_expandコマンドの追加 * ソースからのビルド時間の短縮 今回のリリースにはgroonga-httpdのセキュリティフィックスも含まれている ので、groonga-httpdを使っているならアップグレードをおすすめします。 細かな変更点についてはニュースをご確認下さい。 http://groonga.org/ja/docs/news.html#release-6-0-5-2016-06-29 最初に先日開催されたイベントの紹介をします。 ## MySQLとPostgreSQLと日本語全文検索2開催しました MySQL・PostgreSQLの日本語全文検索機能を使ったことがある人向け(触って みたくらいで十分)に、MySQLとPostgreSQLと日本語全文検索に関するイベントを開催しました。 平日の夜に開催にも関わらず、たくさんの人が興味をもって参加してくれました。 ありがとうございます。 イベントの資料や当日の様子のレポートへのリンクを紹介した記事があります ので、当日参加できなかった人は参考にしてみてください。 http://groonga.org/ja/blog/2016/06/09/mysql-and-postgresql-and-japanese-full-text-search-2.html では、次に今月の主な変更点について紹介します。 ## 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) 3つめの引数に直接max_distanceの値を指定できます。 ## query_expandコマンドの追加 今回のリリースでは、query_expandコマンドを追加しました。 Groongaにはクエリに含まれる同義語を展開してくれるプラグインがあります。 * QueryExpanderTSV http://groonga.org/ja/docs/reference/query_expanders/tsv.html これを使うと同義語の展開ができるのですが、展開した結果がどうなるか、事 前にGroonga側で確認することはできませんでした。 もちろん、同義語は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で学ぶ全文検索 2016-07-01 https://groonga.doorkeeper.jp/events/47449 日時: 2016-07-01(金)20:00 - 22:30 場所: 東京都渋谷区広尾1-1-39 恵比寿プライムスクエアタワー20階 (株式会社イーライセンスシステムズ) 概要: 予習復習なしで全文検索とGroongaについて学ぶことができるイベント です。ほぼ隔週で開催されています。内容は参加者にあわせてその場で 決めるので、前の回に参加していないとついていけない、ということは ありません。 興味があるイベントがあればぜひご参加ください! ## 改良 * [io_flush] 正式なコマンド扱いにしました。 * [mruby] マッチ件数を効率よく見積ることで、前方一致検索を最適化しま した。 * [fuzzy_search] 第3引数として max_distance オプションを受けつけるよ うにしました。よく使うオプションを指定しやすくなります。 [GitHub#553] [GitHub#183] [村上さんがパッチ提供] * [query_expand] クエリ展開のコマンドをサポートしました。同義語がた くさんあるときに使うと便利です。 * [select] --drilldown を command_version=3 でも使えるようにしました。 [groonga-dev,04055] [村上さんが報告] * grn_table_select_sequential() の無駄なコードを削除しました。 [GitHub#560] [皆川さんが報告] * grn_table_setoperation(): GRN_OP_ADJUST でスコアを上書きするのでは なく、加算することにしました。この変更は grn_ii_posting_add() との 一貫性を保つために行いました。[groonga-dev,04058] [村上さんが報告] * [dump] 1スレッドで動作しているときに開くテーブルやカラムの最大数を 減らすようにしました。 ## 修正 * [CMake][Windows] mrubyスクリプトのインストール漏れを修正しました。 [groonga-dev,04040] [清川さんが報告] * [Windows] msgpack-cのソースコードをバンドルするようにしました。 * [その他] デフォルトのデータベースエンコーディング(utf8)の記述誤り を修正しました。 [GitHub#549] [岩井さんがパッチ提供] * [ユーザーと協力して開発をうまく進めていくための指針] 製品名の記述 の誤り(Twitter)を修正しました。 [GitHub#550] [岩井さんがパッチ提供] * 検索結果から特定のレコードが漏れてしまう不具合を修正しました。マル チカラムインデックスを WITH_SECTION フラグ付きで静的構築していると 発生します。 [GitHub#551] * GRN_II_CURSOR_SET_MIN_ENABLE=yes が有効な状態でデータをロードして いる最中に検索するとクラッシュする不具合を修正しました。 GRN_II_CURSOR_SET_MIN_ENABLE はGroonga 6.0.3からデフォルトで有効に なりました。 * [トークンフィルター] スレッドセーフでない実装であったのを修正しま した。 * [doc] Groonga 6.0.4のリリースエントリの誤字を修正しました。 [GitHub#559] [cafedomancerさんがパッチ提供] ## 感謝 * 村上さん * 清川さん * 岩井さん * cafedomancerさん -- Kentaro Hayashi <hayas****@clear*****> -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: 無し 型: application/pgp-signature サイズ: 819 バイト 説明: 無しDownload