You are looking at documentation for an older release. Not what you want? See the current release documentation.
Before going deeper into theQueryHandler configuration, you might learn about the query-handler parameters in the following sample configuration:
<workspace name="ws">
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
<property name="index-dir" value="shareddir/index/db1/ws" />
<property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
<property name="infinispan-configuration" value="infinispan-indexer.xml" />
<property name="jgroups-configuration" value="udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="max-volatile-time" value="60" />
<property name="rdbms-reindexing" value="true" />
<property name="reindexing-page-size" value="1000" />
<property name="index-recovery-mode" value="from-coordinator" />
<property name="index-recovery-filter" value="org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter" />
<property name="indexing-thread-pool-size" value="16" />
</properties>
</query-handler>
</workspace>
Variable | Description |
---|---|
index-dir | Path to index. |
changesfilter-class | The FQN of the class to use to indicate the policy to use to manage the lucene indexes changes. This class must extend
org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter . This must be set in cluster environment to define the clustering
strategy to adopt. To use the Shared Indexes Strategy, you can set it to org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter .
If you prefer the Local Indexes Strategy, you can set it to org.exoplatform.services.jcr.impl.core.query.ispn.LocalIndexChangesFilter . |
infinispan-configuration | The template of Infinispan configuration for all query-handlers in repository (search, cache, locks). |
jgroups-configuration | This is the path to JGroups configuration that should not be anymore jgroups' stack definitions but a normal jgroups configuration format with the shared transport configured by simply setting the jgroups property singleton_name to a unique name (it must remain unique from one portal container to another). This file is also pre-bundled with templates and is recommended for use.. |
infinispan-cluster-name | The cluster name (must be unique). |
max-volatile-time | The maximum time to live for Volatile Index. |
rdbms-reindexing | Indicates whether the rdbms re-indexing mechanism must be used, the default value is true. |
reindexing-page-size | The maximum amount of nodes which can be retrieved from storage for re-indexing purpose, the default value is 100. |
index-recovery-mode | If the parameter has been set to from-indexing , so a full indexing will be automatically launched, if the parameter has been set
to from-coordinator (default behavior), the index will be retrieved from coordinator. |
index-recovery-filter | Defines implementation class or classes of RecoveryFilters, the mechanism of index synchronization for Local Index strategy. |
indexing-thread-pool-size | Defines the total amount of indexing threads. |
async-reindexing | Controls the process of re-indexing on JCR's startup. If flag set, indexing will be launched asynchronously, without blocking the JCR. Default is "false". |
max-volatile-size | The maximum volatile index size in bytes until it is written to disk. The default value is 1048576 (1MB). |
indexing-load-batching-threshold-property | The total amount of properties from which the application will decide to get by name all the properties of a node to be indexed using one single query instead of one query per property. The query used is the equivalent of getProperties(String namePattern). The default value is -1 which actually disables this feature. The expected value is an integer. |
indexing-load-batching-threshold-node | The total amount of nodes to index within the same transaction from which the application will decide to get all the properties of the remaining nodes to be indexed using one single query instead of one query per property and a query that will get the list of properties. The query used is the equivalent of getProperties(). The default value is -1 which actually disables this feature. The expected value is an integer. |
indexing-load-batching-threshold-dynamic | In case indexing-load-batching-threshold-property and/or indexing-load-batching-threshold-node
have been enabled, you could expect to see the thresholds to be updated automatically in order to better match with the current performances of the
database used. This is possible if you set this parameter to true knowing that the default value is false and if you enable the JCR statistics.
Based on the JCR statistics, the application will be able to set the best possible values for your thresholds to get the best possible performances. |
indexing-load-batching-threshold-ttl | In case indexing-load-batching-threshold-property and/or indexing-load-batching-threshold-node ,
indexing-load-batching-threshold-dynamic and the JCR statistics have been enabled, the application will regularily update if
needed the thresholds. This parameter defines the periodicity of the task that will update the thresholds. The default value is 5 minutes.
The expected value is a time expressed in milliseconds. |
If you use postgreSQL and the parameter rdbms-reindexing
is set to true, the performances of the queries used while
indexing can be improved by setting the parameter enable_seqscan
to "off" or default_statistics_target
to at least "50" in the configuration of your database. Then you need to restart DB server and make analyze of the JCR_SVALUE (or JCR_MVALUE) table.