Kentaro Hayashi
hayas****@clear*****
2017年 3月 29日 (水) 12:37:32 JST
林です。 今日は肉の日ですね。 Groonga 7.0.1をリリースしました! http://groonga.org/ja/blog/2017/03/29/groonga-7.0.1.html 今回のリリースでは、CentOS 5のサポートをやめたり、データベース(インデッ クスサイズ)の肥大化のリグレッションが修正されています。 細かな変更点についてはニュースをご確認下さい。 http://groonga.org/ja/docs/news.html#release-7-0-1 # 変更内容 主な変更点は以下の通りです。 * CentOS 5のサポートをやめました * データベースの肥大化対策が入りました * [実験的] ヒット数が少なそうな条件から並べ替えて検索できるようになりました #### CentOS 5のサポートをやめました 3/31でCentOS 5がEOLとなるため、今月のリリースからCentOS 5向けのパッケー ジの提供をやめました。 CentOS 6もしくはCentOS 7でのパッケージの提供は継続するので、そちらへの 移行をおすすめします。 #### データベースの肥大化対策が入りました 6.1.4のリリースにおいて、インデックスを更新する際、非自然言語だと遅い 問題を改善しました。しかし、その結果副作用として自然言語ではインデック スサイズが増える問題がありました。トークナイザーが語彙表に指定されてい たら旧アルゴリズムを適用することで問題を修正しています。 全文検索をする場合、トークナイザーを指定する使い方が通例なので、以下の ように2つのアルゴリズムを使い分けるようにしています。 * 語彙表にトークナイザーの指定あり(従来のアルゴリズム適用によりインデッ クスの肥大化の問題がない) * 語彙表にトークナイザーの指定なし(非自然言語用のアルゴリズム適用によ り従来アルゴリズムの欠点であった性能劣化がない) どれくらい肥大化していたかというと、5GくらいのDBで7GBくらいに増えるケー スがありました。 6.1.4以降がその影響を受けます。静的更新の場合には問題なく、動的に更新 したときに増加が問題になっていました。以下は変更前後のテストケースでど れくらい違いがあるかを示しています。 http://groonga.org/images/blog/en/2017-03-29-groonga-7.0.1/side-effects-6.1.4-change.png #### [実験的] ヒット数が少なそうな条件から並べ替えて検索できるようになりました ヒット件数が少ない条件から絞り込むことで高速に検索できることに着目し、 条件を自動的に並べ替える機能を追加しました。 * A (件数が多い) && B (件数が少ない) 上記のような場合、以下のようにすると検索が速いです。 * B (件数が少ない) && A (件数が多い) これはよく知られたやりかたですが、上記を実現しようとすると、従来はアプ リケーション側でクエリをいい感じに並べ替える最適化をあれこれと頑張る必 要がありました。 有効にするには環境変数 GRN_ORDER_BY_ESTIMATED_SIZE_ENABLE=yes を設定し ます。 この環境変数が有効な場合、どれくらいヒットしそうかを推定する GroongaのAPIを活用して条件の並べかえを行うようになります。 Groongaで最適化を自動的に行うことができるようになりますが、この機能は 実験的なためデフォルトでは無効です。 -- Kentaro Hayashi <hayas****@clear*****> -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: 無し 型: application/pgp-signature サイズ: 833 バイト 説明: 無しDownload