Monday, December 19, 2011

Mac OS X Lion への MeCab (0.99pre2) のインストール

開発環境のOSを、Lion (10.7.2) へアップデートしたのを機に、MeCab の最新版(0.99pre2)をインストールしてみました。
前回の Snow Leopard への Cabocha のインストール の時と違い、いきなり iconv が参照出来ないと怒られて Make が通らないので、configure のオプションで、--with-libiconv-prefix=/usr のように指定し、なんとかコンパイル完了。今回の configure オプションは、以下の通りとしました。
./configure --prefix=/opt/local --with-charset=utf8 --with-libiconv-prefix=/usr

その後の make check も無事パスし、いざインストールと思い、sudo make install するも、 Permission denied でインストール出来ず。。。 時間も無かったので、ファイルを手動コピーでなんとかしてしまったものの、気持ちが悪いので、後ほど時間を作って原因を調べてみたいと思います。

Wednesday, November 30, 2011

Solr 3.5 リリース! ということで、リリースノートを日本語訳してみました



Solr 3.5 がリリースされました。CHANGES.TXT に含まれる内容を翻訳してみました。内容を見なす時間が無かったのでドラフトということでご容赦下さい。なお、誤訳、日本語としておかしな点がありましたら、ご指摘ください。なお、3.4 -> 3.5 の分のみの翻訳ですが、そのうちそれ以前の分も翻訳するかも知れません。


Apache Solr リリースノート

はじめに
------------
Solrは、Apache Luceneプロジェクトが提供する人気の高い、非常に高速なエンタープライズ検索プラットフォームです。主な機能として全文検索、ヒットハイライト、ファセット検索、動的なクラスタリング、ダータベースとの接続、そしてWordやPDFなどのリッチドキュメントの取り扱いなどが含まれます。 Solr は、非常にスケーラブルで、分散検索とインデックスのレプリケーション機能を提供しています。そして、世界の大規模なインターネットサイトの多くの検索とナビゲーション機能を強力にしています。

SolrはJavaで書かれ、スタンドアロンの全文検索サーバーとしてTomcat などのサーブレットコンテナーで稼働します。 SolrはLucene Java検索ライブラリを全文検索インデキシングと検索のコアとして利用しています。そして、REST風のHTTP/XMLとJSON APIによって、ほとんど全てのプログラム言語から簡単に利用できます。Solrの高度な設定機能によって、Javaによるプログラム作成を行わなくても、多くのタイプのアプリケーションに対応することが可能です。さらに、幅広いプラグインアーキテクチャーによって、より高度なカスタマイズが必要な際にも対応できます。

利用を始めるにあたっての、より多くの情報については、README.txt と http://lucene.apache.org/solr をご覧下さい。

==================  3.5.0  ==================
主要コンポーネントのバージョン
---------------------
Apache Tika 0.10
Carrot2 3.5.0
Velocity 1.6.4 and Velocity Tools 2.0
Apache UIMA 2.3.1


Solr 3.4 からのアップグレード
----------------------

* VelocityResponseWriter は、コアに含まれていません。利用する場合には、JAR と関連する
  ファイルを追加(<lib> あるいは、solr/home 以下の lib に含める)し、solrconfig.xml に以下の
  ように記述する必要があります。
      <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter"/>

新機能
----------------------
* SOLR-2749: FastVectorHighlighter へバウンダリースキャナー(境界認識の仕組み)を
  追加。<boundaryscanner/> を名称とともに solrconfig.xml へ定義し、パラメータ
  hl.boundaryScanner=name  により、その名称を指定することによって利用します。
  (koji)

* SOLR-2066, SOLR-2776: 分散グルーピングのサポートを追加しました。
  (Martijn van Groningen, Jasper van Veghel, Matt Beaumont)

* SOLR-2769: 新しい Hunspell stemmer のファクトリーを追加したことにより、99言語の
  ステミングが可能になりました。
  (janhoy, cmale)

* SOLR-1979: 新しいコントリビューション"langid"として、Update Processor による
  言語判別機能を追加しました。
  Tika の LanguageIdentifier か Cybozu language-detection library のどちらかを利用できます。
  (janhoy, Tommaso Teofili, gsingers)

* SOLR-2818: SolrJ でのレンジファセットで、before/after の件数のレスポンス解析サポート
  を追加しました。
  (Martijn van Groningen 経由で Bernhard Frauendienst)

* SOLR-2276: PhoneticFilterFactory へ、Cologne Phonetic サポートを追加しました。
  (rmuir を経由して Marc Pompl)

* SOLR-1926: hl.q パラメータを追加しました。(koji)

* SOLR-2881: 数値型で sortMissingFirst/Last をサポートしました。これには、Trie 型と
  Date 型が含まれます。
  (Ryan McKinley, Mike McCandless, Uwe Schindler, Erick Erickson)

* SOLR-1023: StatsComponent で date フィールドと string フィールドをサポートしました。
  (Chris Male, Mark Holland, Gunnlaugur Thor Briem, Ryan McKinley)

* SOLR-2578: ReplicationHandler のバックアップコマンドが 'numberToKeep' パラメータを
  サポートしました。これにより、最近の N 件のバックアップのみを保持し、それ以外の
  ものを削除出来ます。
  (hossman 経由で James Dyer)

最適化
----------------------

* SOLR-2742: SolrJ: 全ての add() メソッドがオプションパラメータとして commitWithinMs
  を提供し、開発者がより簡便にこの機能を利用できるようにしました。 (janhoy)

バグ修正
----------------------

* SOLR-2762: (4.x 系からのバックポート): FSTLookup がリクエストよりも少なく重複
  あるいは1件の結果を返していました。
  (David Smiley, Dawid Weiss)

* SOLR-2748: CommitTracker が commitWithin または maxTime 指定による autoCommit
  を利用している際に、頻繁に commit を行うことで新しいサーチャーが登録されるまで、
  追加をブロックすることがありました。(yonik)

* SOLR-2726: Suggester とともに spellcheck.q 利用時に NullPointerException が発生して
  いたのを修正しました。
  (Bernd Fehling, rmuir 経由で valentin)

* SOLR-2772: 0001-1000 の期間の日付パース/フォーマットを修正しました。
  (hossman)

* SOLR-2763: サイズ0のファイルをマルチパートフォームで POST した際に、
  Extracting Update Request Handler が例外を発生し、400 を返していました。
  (janhoy)

* SOLR-2780: 複数選択ファセットで、group.truncate パラメータを扱わない問題を
  修正しました。
  (Martijn van Groningen, Ramzi Alqrainy)

* SOLR-2791: Replication: 通常の poll では無く、fetchindex コマンドによりレプリケーション
  が始まっていた場合に、abortfetch コマンドが効きませんでした。(shalin 経由で Yury Kats)

* SOLR-2861: 非常に稀なコミット時のレースコンディションにより、NullPointerException
  が発生する問題を修正しました。(yonik)

* SOLR-2829: 間違った equals メソッドにより、ご判定される問題を修正しました。
  (Yonik Seeley, Hossman, Erick Erickson. Marc Tinnemeyer がバグを発見)

* SOLR-2902: SpellCheckResponse において照合リストのパースが間違っていたため、
  レスポンス中の照合結果の件数が間違っていました。
  (Bastiaan Verhoef, Simon Willnauer 経由で James Dyer)

 その他の変更点
----------------------

* SOLR-2750: "update.chain"と"update.param"の両方があらゆるところで利用できるように
  しました。SOLR-2105 もご覧ください。(Mark Miller, janhoy)

* LUCENE-3410: WordDelimiterFilter コンストラクタが複数の int パラメータをブーリアン
  として受け取っていたのに代わり、優先コンストラクタは、1つの int 型ビットフィールド
  変数を受け取ります。(Chris Male)

* SOLR-2758: ConcurrentLRUCache を、SolrJ モジュールの org.apache.solr.common.util
  パッケージから、Solr-Core モジュール org.apache.solr.util パッケージへ移動しました。
  (Steve Rowe 経由で David Smiley)

* SOLR-2756: Maven 設定: 未使用の zookeeper 依存関係の整理を行いました。
  geronimo-stax-api への依存関係は、Java 1.5 環境下でのみ有効となります。
  org.codehaus.woodstox:wstx-asl から推移的なstax:stax-api への依存は除かれます。
  (David Smiley, Steve Rowe)

* SOLR-2770: 'ant generate-maven-artifacts' は、Solr 固有の jdk15-compiled 
  carrot2-core 依存関係の maven artifact を生成します。(Steve Rowe)

* SOLR-2766: solrj と test-framework それぞれの javadoc サイトをパッケージする
  ようにしました。
  (Steve Rowe, Mike McCandless)

* SOLR-2771: Solr モジュールのテストが solr-core テストクラスへ依存するべきでない
  ことから、BufferingRequestProcessor を solr-core テストから test-framework へ移動
  しました。これにより、Solr Cell モジュールから、同プロセッサーが利用できます。
  (janhoy, Steve Rowe)

* LUCENE-3457: commons-compress を 1.2 へアップグレードしました。(Doron Cohen)

* SOLR-2757: min() および max() 関数において、任意の数の ValueSource をサポート
  しました。
  (hossman 経由で Bill Bell)

* SOLR-2372: Tika 0.10 へアップグレードしました。(janhoy)

* SOLR-2792: ケースインセンシティブな Hunspell ステミングをサポートしました。
  (janhoy, rmuir)

* SOLR-2588: VelocityResponseWriter を SolrCore の依存モジュールから外すため、
  contirb モジュールへと戻しました。(Erik Hatcher)

* SOLR-2862: Carrot2 によるクラスタリング機能拡張利用時に、辞書資源の場所を
  ログへ明示的に出力するようにしました。このために、IResource と IResourceLookup
  の Solr での実装を修正しています。(Dawid Weiss)

* SOLR-2849: Maven POM の依存関係を修正しました。
  (Steve Rowe 経由で David Smiley)

* SOLR-2591: solrconfig.xml から commitLockTimeout オプションを削除しました。
  (Martijn van Groningen 経由で Luca Cavanna)

* SOLR-1123: JSONResponseWriter が Content-Type として新しい application/json を
  デフォルトで返すように変更しました。しかし、Content-Type は上書き可能で、
  設定例では、text/plain がセットされています。(Uri Boness, Chris Male)

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 にも書いてあるように、ハリケーン アイリーンのおかげで露呈したバグのようです。

Monday, January 3, 2011

[備忘録] Mac OS X Snow Leopard でことりえ辞書を初期化する

義母が利用している MacBook で、ことえりの日本語変換がむちゃくちゃな状態だと言うので、初期化することに。実は、ATOK の購入も考えたのだけど、まずは初期化して様子見ということで、ちょっと ATOK 11 の実力を見たかったので残念w

 

1. 環境

MacBook Pro 15"

Mac OS X 10.6 Snow Leopard

 

2. 初期化の手順

Users/XX/Library/Preferences


以下のファイルを削除
com.apple.Kotoeri.plist
com.apple.Kotoeri WordRegister.plist
com.apple.Kotoeri Preferences.plist

com.apple.Japanese Analysis フォルダ内の以下のファイルを削除
Environment.plist
InputPrediction.dict
LearningDictionary.dict

再ログインして日本語変換を確認。