Lucene以前、少し動かしては「なんかダメっぽい」程度の印象で止めていた、このテーマをもう少し見てみることにしました。Searchで使うLuceneのインデックスの保存先をInfinispanにして、なおかつクラスタを構成した時のインデックスの更新時の挙動についてです。以前、この内容でクラスタを構成した時、EJBやSpringのComponentの初期化時にMassIndexerを仕込んでいると、後から起動した方がロックを取れずに負けるので、「そうなのか〜」程度に捉えていました。確認してみようかなと。Search(バックエンドをInfinispan)でクラスタを構成した時、インデックスを更新できるのはひとつのNodeとなり、そこまではいいのですがそれ以後も同じNodeでインデックスを更新しなくてはいけないようです。インデックスの分散保持というよりは、マスター/スレーブな感じですね。Bootで軽くサンプルを書いてみました。設定とかは、後で載せます。Cacheです(こちらも、後で載せます)。Controller。操作できるのは、Entityの登録&インデックスの更新、検索、そしてインデックスの再構築です。}}Entityは、このような定義のものを使います。}}テーブル定義は、このように。sec)で、こちらをパッケージングして、2つNodeを起動してみます。--server.port=9080起動途中で、クラスタが構成されます。xxxxx-925]リクエストは、このようなJSONを投げてみます。1にデータを登録してみます。Boot"}]両方共OKですね。2側に今度は以下のようなデータを登録してみます。――Javaフレームワーク・より良い設計とアーキテクチャ"}]実行。@request2.jsonすると、裏でコケております...。2側でIndexWriterが開けないようです。データはどうなったかというと、きちんと登録されているようです。sec)でも、全文検索では結果に現れません。Boot"}]インデックスの更新のみ、失敗しているようですね。http://localhost:8080/contents/reindexFinish!!結果に現れるようになります。――Javaフレームワーク・より良い設計とアーキテクチャ"}]データ自体は、テーブルに入っていますからね...。2は、インデックスを更新できないだけでなく、インデックスの再構築(MassIndexer)もできません。2のMassIndexerが何回か失敗し続けてくれますが...)。今まで、検索してみてどう?くらいしかしていなかったので、ちゃんと確認してよかったなーという気になりました。Luceneのインデックス更新を伴う場合は、どれかひとつのNodeに固定してリクエストを投げないと、うまくいかないということですね。その時更新可能なNodeがダウンしたりすると、ロックが外れるので他のNodeも更新できるようになります。その後に更新したNodeが、ロックを持ち続けるのですが。この単一Nodeしか更新できないという制限、ちゃんと実感してこなかったので、よいきっかけになりました。Searchを使うとどうなるのかは、ちょっと気になりますね。configurationhttp://infinispan.org/docs/7.2.x/user_guide/user_guide.html#_automatic_configurationこの中の設定項目で特に気になるのは、「hibernate.search.default.indexmanager」ですね。今度、確認してみましょう。追記)確認してみました。Searchでクラスタを構成した時の、インデックスの更新についてhttp://d.hatena.ne.jp/Kazuhira/20150808/1439036374オマケ先ほど動作させたプログラムですが、紹介しなかったpom.xmlや他のコードを載せておきます。先ほど紹介したコードは、ここでは端折ります。</dependencies></project>ムダにKuromoji入り。プログラムのエントリポイント。Bootの設定ファイル。LUCENE_4_10_4Infinispanの設定ファイル。</cache-container></infinispan>JGroupsの設定ファイル。<FRAG2/></config>以上でしたー。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro月別アーカイブはてなブログをはじめよう!Kazuhiraさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。