2016-06-20 14 views
3

Hibernate検索のデフォルトのinfinispanコンフィグレーションでメモリ内のインデックスを格納すると、アプリケーションをシャットダウンした後にすべてのインデックスを再インデックスする必要があります。永続キャッシュストアにインデックスを保存する方法

私はinfinispanの文書を読んで、インデックスをinfinispanファイルストアに格納する方法があります。私が周りを回ってグーグルで遊んだ後、私はまだそれを設定する方法を知らない。

答えて

5

Infinispanユーザーガイドの第5章(Persistence)と16(InfinispanのLuceneインデックス用の記憶域)を確認できます。章番号はInfinispan 8.2のものです。 Hibernateの検索では、 "default-hibernatesearch-infinispan.xml"ファイルも用意されています。基本的にメタデータと実際のインデックスキャッシュに永続性を追加する必要があります。

<distributed-cache name="LuceneIndexesData" mode="SYNC" remote-timeout="25000"> 
     <transaction mode="NONE"/> 
     <state-transfer enabled="true" timeout="480000" await-initial-transfer="true"/> 
     <indexing index="NONE"/> 
     <locking striping="false" acquire-timeout="10000" concurrency-level="500" write-skew="false"/> 
     <eviction max-entries="-1" strategy="NONE"/> 
     <expiration max-idle="-1"/> 
     <persistence passivation="false"> 
      <jdbc:string-keyed-jdbc-store preload="true" fetch-state="true" read-only="false" purge="false"> 
       <jdbc:data-source jndi-url="java:comp/env/jdbc/..."/> 
       <jdbc:string-keyed-table drop-on-exit="false" create-on-start="true" prefix="ISPN_STRING_TABLE"> 
        <jdbc:id-column name="ID" type="VARCHAR(255)"/> 
        <jdbc:data-column name="DATA" type="MEDIUMBLOB"/> 
        <jdbc:timestamp-column name="TIMESTAMP" type="BIGINT"/> 
       </jdbc:string-keyed-table> 
       <property name="key2StringMapper">org.infinispan.lucene.LuceneKey2StringMapper</property> 
       <write-behind/> 
      </jdbc:string-keyed-jdbc-store> 
     </persistence> 
    </distributed-cache> 

この例では、動的クラスタで動作するため、JDBCを使用しています。インデックスをファイルに保存する場合は、 "jdbc:string-keyed = jdbc-store"を "file-store"に置き換える必要があります。

+1

いくつかの例があります(https://github.com/infinispan/infinispan/blob/master/integrationtests/as-lucene-directory/src/test/resources/user-provided-infinispan-persistence.xml)。 )あまりにも。 –

+0

あなたは私の日を救った。私はその例を踏襲して動作します。 –

関連する問題