|
The settingcombination
hibernate.search.exclusive_index_use=true hibernate.search.default.worker.execution=async hibernate.search.default.directory_provider=infinispan hibernate.search.default.indexBase=infinispan
is not working as expected. What works is mass indexing and then search. But if one changes searched data afterwards so that different search results have to be found, the same old results will appear.
Searching works as expected if worker is sync, or exclusive_index_use is false.
hibernate.search.exclusive_index_use=true hibernate.search.default.worker.execution=async works perfectly with filesystem directory provider instead of infinispan.
This problem is independent of any cluster configurations. It appears on single node configuration also.
Infinispancache configuration is as follows
<replicated-cache name="LuceneIndexesMetadata" mode="SYNC"
remote-timeout="25000">
<persistence passivation="false">
<!-- note that class is missing and is induced by the fileStore element
name -->
<file-store shared="true" preload="true" fetch-state="true"
read-only="false" purge="false" path="${java.io.tmpdir}">
<write-behind flush-lock-timeout="15000"
thread-pool-size="5" />
</file-store>
</persistence>
<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" />
</replicated-cache>
<replicated-cache name="LuceneIndexesData" mode="SYNC"
remote-timeout="25000">
<persistence passivation="false">
<!-- note that class is missing and is induced by the fileStore element
name -->
<file-store shared="true" preload="true" fetch-state="true"
read-only="false" purge="false" path="${java.io.tmpdir}">
<write-behind flush-lock-timeout="15000"
thread-pool-size="5" />
</file-store>
</persistence>
<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" />
</replicated-cache>
<replicated-cache name="LuceneIndexesLocking" mode="SYNC"
remote-timeout="25000">
<persistence passivation="false">
<!-- note that class is missing and is induced by the fileStore element
name -->
<file-store shared="true" preload="true" fetch-state="true"
read-only="false" purge="false" path="${java.io.tmpdir}">
<write-behind flush-lock-timeout="15000"
thread-pool-size="5" />
</file-store>
</persistence>
<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" />
</replicated-cache>
I also created a forum topic with more prosa here: https://forum.hibernate.org/viewtopic.php?f=9&t=1041987
Although sync and inexclusive index use works, it is unfortunately to slow for our usecase. So in fact for us this is unfortunately a blocker although I didn't mark it as one here.
|