コメントするあけましておめでとうございます。本年もよろしくおねがいいたします。新年最初のエントリーはNearRealTimeSearchの紹介です。(PDF版はこちら)1.NearRealTimeSearchとはSolrを利用した検索サイトを作成するとき、多くの場合は登録するデータはバッチによる定期的な更新を行うようにするのが一般的です。これは、Solrのインデックスへの書き込みがトランザクションに対応していないことやインデックス更新を行なっている間の検索性能の劣化などが要因となっています。最近では定時更新ではなく、よりリアルタイムに検索インデックスにデータの追加更新を反映したいという要件が多くなってきています。この要件に対応するために提案、実装されたものがNearRealTimeSearch(ほぼリアルタイム検索)と呼ばれる機能です(以降ではNRTと略します。Luceneには2.9ですでにNRTが実装されていましたが、Solrにて利用できる形にするためにSOLR-2193で提案されました。2.NRTの仕組みNRTはLuceneのNRTを利用した仕組みになります。LuceneのNRTはインデックスの書き込みを行うIndexWriterから、Index検索のためのオブジェクトIndexReaderを取得することができるようになる機能になります。インデックスがファイルに書き込まれる前の(メモリ上にあるインデックス)状態で検索が可能になることになります。Solrでは、この機能を利用するためにこれまでコミット(commit)と呼ばれていた機能を以下の2つコミットとして再定義しました。Commitこれまでのコミットと同義。停電からのデータロスをなくすためにfsyncを呼び出し、ファイルにインデックスを出力する。Commit新たに追加されたコミットの種類。インデックスの変更をファイルに反映せず、メモリ上に反映する。CommitがNRTを利用するためのコミットとなります。ディスクへの書き込みは保証されませんが、ほぼリアルタイムに検索結果に反映がされます。現在、NRTが利用できるのはtrunkである4.x系のみとなります。3.x系以前では残念ながら利用できません。前述ですが、ディスクへ書き込みも保証されません。Commitが実行された時点までインデックスの状態が戻ることに注意が必要です。Commitの仕組み上、レプリケーションによる同期が利用できません。Commit時点ごとにしかレプリケーションが動作しません。Commitによるほぼリアルタイム反映についてはデータ更新対象となっているSolrサーバでのみ恩恵をうけることが可能です。Commitが追加されています。XMLによるコミット時の指定は次の様になります。Commitの動作となります。Commit前に更新したデータ件数がコミットされていない状態がわかります。Commitは実施されていますので、検索結果には表示されます。次は設定によるAutoCommitについてです。Solrではsolrconfig.xmlの設定によりAutoCommitが設定可能です。&lt;/autoSoftCommit&gt;1234&lt;autoSoftCommit&gt;&lt;maxDocs&gt;10&lt;/maxDocs&gt;&lt;maxTime&gt;1000&lt;/maxTime&gt;&lt;/autoSoftCommit&gt;これまで同様、maxDocsによる指定とmaxTimeによる指定が可能です。Commitが実行される。Commitが実行される。Commitの設定についてはこれまでと同様のタグにて指定可能です。Commitを数分おきとすることで、定期的にファイルにインデックスを保存しつつ、ほぼリアルタイムに更新を反映させるといった設定が可能になります。前述しましたがNRTは、マスタスレーブ構成(レプリケーション)には対応していません。マスタスレーブ構成についてはSolrのMLで話が上がりましたが、現在のレプリケーションの機能との併用は望めないようです。代わりにSolrCloudと呼ばれる別の新しい分散インデックスの機能が紹介されています。SolrCloudとはクラウドでの検索サービスとしてSolrを運用管理するために現状のSolrの拡張する機能です。NRTについてはまずは、マスタスレーブでない環境で利用してみるのはいかがでしょうか。コメントするはじめまして、シーマークの大谷です。Solr入門が出版されてから1年以上経ちました。SolrのコミュニティはSolr入門を書いて以降も活発に活動が続いており、Luceneプロジェクトと統合され、現在はバージョン3.3がリリースされています。(最近は2ヶ月おきにリリースが行われるくらいです)Solrも多くのサイトで導入が検討されたり、実際に利用されてきています。Solrは手軽に様々な機能が利用出来る反面、構成やケアすべき点が色々と存在します。私の方では新機能の紹介や、Wikipediaのデータを利用した簡単な性能測定の結果などをこのブログで取り組んでいこうと思っています。※あと、個人のブログですが、lucene-gosenというSenの後継にあたる形態素解析ツールについて記述をしています。こちらも参考にしていただければと。コメントするはじめまして。シーマークの山本です。我社でも、エンジニアがそれぞれ持っている興味やテーマを題材にして、技術系ブログを書き始めることになりました。同じ興味をもつエンジニアの方々との情報共有を通し、さらなるコラボレーションのきっかけとしていければいいな、と思っています。そこで、1エンジニアである私の第一回目の記事を何で飾ろうかといろいろと考えました。最近のエンジニア世界で流行っているようなトピックをきれいにまとまてスマートに紹介!ってのもやってみたいです。)に対して、どのようなアプローチで挑み、それを実現するためのアーキテクチャーとはどのようなものか、そういったことをお客様と一緒に考え成長しながら課題解決を目指すことが多いのです。その中では、海のものとも山のものともつかない生まれたてのアプリやミドルウェアをうまく使いこなすことが、課題解決のためのキー・テクノロジーとなることがあります。そのためには、そのプロダクトがもつ特長と限界を、実践的な方法で突き詰めていくことが必要になってきます。いうオープンソースのデジタルコンテンツを管理するためのシステムについて、どんな特長があり、その限界はどこにあるのかを明らかにしていくなかで、実践的なノウハウを共有していけたらと思っています。http://outerthought.org/site/products/lily.html次回からは、システムの概要説明からはじめて、具体的なインストール方法、使い方などについて、書かせていただこうと思っています。