1 Reply Latest reply on Jun 26, 2013 10:07 AM by uwew

    Lucene Index Replication

    uwew

      Environment: JBAS 7.1.1, GateIn 3.5

       

      Actually i am running a GateIn portal consisting of two nodes, and an apache load balancer.

       

      Everything works fine except, that the lucene indexes are not replicated between node1 and node2.

       

      Is there a way to achieve a index replication to all nodes in a cluster without using a shared directory?

       

      If this is not possible, how can i manually tell lucene to reindex the data (e.g. calling a lucene api)? Then i would call this api on all nodes, whenever a content change occurs.

       

      Kind Regards,

      Uwe

        • 1. Re: Lucene Index Replication
          uwew

          I had a look at the solution, which is described here:

          http://docs.exoplatform.com/public/index.jsp?topic=/PLF40/JCRReferenceGuide.html (RSync Index)

           

          My configuration of repository-configuration.xml is as follows:

          <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">

              <properties>

                  <property name="index-dir" value="/data/cluster-lucene/index/system${container.name.suffix}"/>

                  <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />

                  <property name="jbosscache-configuration" value="${gatein.jcr.index.cache.config}"/>

                  <property name="jgroups-configuration" value="${gatein.jcr.jgroups.config}"/>

                  <property name="jgroups-multiplexer-stack" value="false"/>

                  <property name="jbosscache-cluster-name" value="jcrindexer${container.name.suffix}"/>

                  <property name="jbosscache-shareable" value="true"/>

                  <property name="max-volatile-time" value="60"/>

                  <property name="spellchecker-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker$FiveSecondsRefreshInterval" />

                  <property name="support-highlighting" value="true"/>

                  <property name="excerptprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.WeightedHTMLExcerpt"/>

                  <property name="rsync-entry-name" value="index" />

                  <property name="rsync-entry-path" value="/data/cluster-lucene/index" />

                  <property name="rsync-port" value="873" />

                  <property name="rsync-user" value="rsyncexo" />

                  <property name="rsync-password" value="exo" />

                  <property name="async-reindexing" value="true" />

                  <property name="rdbms-reindexing" value="true" />

              </properties>

          </query-handler>

           

           

          Unfortunately the indizes are not replicated, it seems the the rsync command never gets called/executed. Do i have to activate this in an other place?

           

          As this function was added in exo jcr 1.15 and GateIn 3.5 uses exo jcr 1.15, should this work in this version of GateIn?

           

          If yes, do you have any hints on how to solve/debug this?

           

          Kind Regards,

          Uwe