Friday, September 16, 2011

Lucene/Solr 3.4 リリース!

気がついたら、Lucene/Solr 3.4 がリリースされていました。3.3 のリリースからそれほど間のないタイミングでのアップデートということで、キャッチアップするだけでも大変な状況です。

自分用のメモ代わりに、ニュースリリースを簡単に和訳してみました。



Lucene 3.4/Solr 3.4 がリリースされました。Lucene PMC によるニュースリリースによると、現在 Lucene/Solr 3.1, 3.2 あるいは、3.3 を利用しているユーザは、アップデートすることを強く推奨しています。これは、機能ハイライトにあるように、OS あるいは、コンピューター のクラッシュ/電源消失により、インデックスが壊れてしまうバグが修正LUCENE-3418)されているからです。無停電電源のある環境であれば比較的安全なのかも知れませんが、いつそのバグを踏んでしまうか分かりませんし、出来るだけ早めのアップデートを検討した方が良いかもしれません。

Lucene 機能ハイライト:


  • OS あるいは、コンピューターのクラッシュ/予期せぬ電源消失によりインデックスが壊れてしまうバグ (LUCENE-3418) を修正しました。
  • 新しいファセットモジュールとして、検索時にファセットカウントの集計を行うモジュール(LUCENE-3079)を追加しました。
  • JOIN モジュールの追加により、BlockJoinQuery/Collector (LUCENE-3171) を利用して、ネストしたドキュメント(親子関係のあるドキュメント)のインデキシング/検索が可能になりました。
  • タームの位置情報を含めることなく、ターム頻度(タームフリクエンシー:TF)をインデックスに含めることが可能になりました。以前の omitTermFreqAndPositions オプションでは、常時、両方を含めない設定しか行えませんでした。(LUCENE-2048)
  • QueryParser モジュールで、NumericRangeQuery が作成可能になりました。
  • SynonymFilter の追加により、インデキシング/検索時に、複数の類義語への展開が行えるようになりました。また、WordNet や Solr の類義語フォーマットのファイルの利用が可能です。 (LUCENE-3233)
  • ソート対象フィールドで、値が入っていない場合の動作を SortField.setMissingValue によりコントロール出来るようになりました。(LUCENE-3390)
  • addIndexes メソッド実行後に タームベクターが削除されてしまう問題が発生する問題を修正しました。(LUCENE-3403)  #訳注:本文では、LUCENE-3402 となっていますが、LUCENE-3403 の間違いだと思われます。


Solr 機能ハイライト:


  • SolrJ クライアントが、検索結果のグループ/レンジファセットを処理出来るようになりました。(SOLR-2523)
  • 新しい XsltUpdateRequestHandler を利用することにより、XSLT による XML ドキュメントの Solr ドキュメントへの変換とフィードを行うことが可能になりました。(SOLR-2630)
  • ポストグループファセッティングオプション(group.truncate) により、各ファセットグループにおける高いランキングのドキュメントのカウントのみの集計が行えるようになりました。(SOLR-2665)
  • 全ての Update Handler へ commitWithin アップデートリクエストパラメータを追加しました。これにより、特定の時間内での commit を行うように指示が行えます。(SOLR-2540)
  • NIOFSDirectory を指定することが出来るようになりました。(SOLR-2670)  #訳注:DirectoryFactory において、設定出来る項目として追加されています。
  • ハイライトの新しいパラメータ hl.phraseLimit により、FastVectorHighlighter のパフォーマンス向上が行えます。(LUCENE-3234)  #訳注:フレーズマッチの長さ制限を与えることによるパフォーマンス向上ということになります。
  • クエリーキャッシュとフィルターキャッシュをリクエスト毎に使用しないように設定可能になりました。Wiki も参照して下さい。(SOLR-2429)
  • SynonymFilterFactory における、メモリ使用量、ビルド時間およびパフォーマンスを向上しました。(LUCENE-3233)
  • スキーマでの設定に omitPositions を追加しました。これにより、インデキシング時に、ターム頻度(TF)を残したままタームポジションを保持しないようにすることが可能になりました。(LUCENE-2048)
  • マルチスレッド化された DataImportHandler に対していくつかの改善を行いました。


ここまで。

ということで、目玉は、やはりインデックスが壊れてしまうバグの修正でしょうか。でも、これにより Lucene/Solr 3.4 以前の 3.X は、実質的には使えないという事になりますよねぇ。なお、Jira にも書いてあるように、ハリケーン アイリーンのおかげで露呈したバグのようです。