Query indexes only updated at startup?
jonathandfields Aug 11, 2011 3:52 PMModeshape 2.6.0 Beta2, JBoss AS Kit, Seam web app.
Federated repository with JPA source and file system source.
rebuildQueryIndexOnStartup and queryIndexesRebuiltSynchronously are set to true.
Case 1: queryIndexesUpdatedSynchronously set to true
- I add a STRING property to a node residing in the JPA source.
- I perform a full text query with the value of the string property. No results.
- Using Luke, I can see that the property has not been added to the Lucene document.
- I restart the server. I perform the same full text search. The node is found.
Case 2: queryIndexesUpdatedSynchronously set to false
- I add a STRING property to a node residing in the JPA source.
- I wait for 10 minutes. Hopefully sufficient time for the indexing thread mentioned in the ref guide to do its work.
- I perform a full text query with the value of the string property. No results.
- Using Luke, I can see that the property has not been added to the Lucene document.
So overall, it appears that the only time the index is updated is if I restart Modeshape to force a complete index build.
Is this a bug, or am I missing something in my configuration (below)? If it's a bug, and and I should submit a JIRA, please let me know.
Thanks.
modeshape-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns:mode="http://www.modeshape.org/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0">
<mode:repositories>
<mode:repository jcr:name="repository" >
<mode:source>federated</mode:source>
<mode:options jcr:primaryType="options">
<mode:option jcr:name="projectNodeTypes" mode:value="true"/>
<mode:option jcr:name="jaasLoginConfigName" mode:value="modeshape"/>
<mode:option jcr:name="queryIndexDirectory" mode:value="${jboss.server.data.dir}/modeshape/repositories/store/indexes"/>
<mode:option jcr:name="queryIndexesUpdatedSynchronously" mode:value="false"/>
<mode:option jcr:name="queryIndexesRebuiltSynchronously" mode:value="true"/>
<mode:option jcr:name="rebuildQueryIndexOnStartup" mode:value="always"/>
</mode:options>
</mode:repository>
</mode:repositories>
<mode:sources jcr:primaryType="nt:unstructured">
<mode:source jcr:name="database"
mode:classname="org.modeshape.connector.store.jpa.JpaSource"
mode:dataSourceJndiName="java:DefaultDS"
mode:model="Simple"
mode:dialect="org.hibernate.dialect.HSQLDialect"
mode:referentialIntegrityEnforced="true"
mode:largeValueSizeInBytes="10000"
mode:retryLimit="3"
mode:compressData="false"
mode:predefinedWorkspaceNames="default,system"
mode:showSql="false"
mode:autoGenerateSchema="update"
mode:creatingWorkspacesAllowed="true"
mode:defaultWorkspaceName="default" />
<mode:source jcr:name="filesystem"
mode:classname="org.modeshape.connector.filesystem.FileSystemSource"
mode:description="File System Source"
mode:workspaceRootPath="/home/mcr/content"
mode:defaultWorkspaceName="default"
mode:creatingWorkspacesAllowed="false"
mode:rootNodeUuid="a9bb5d79-f6c7-4bbc-a016-9453035b1b87"
mode:updatesAllowed="true"
mode:exclusionPattern="^.*\.modeshape$"
mode:extraPropertiesBehavior="store"/>
<mode:source jcr:name="federated">
<mode:classname>org.modeshape.graph.connector.federation.FederatedRepositorySource</mode:classname>
<mode:workspaces>
<mode:workspace jcr:name="default">
<mode:projections>
<mode:projection jcr:name="database projection" mode:source="database" mode:workspaceName="default">
<mode:projectionRules>/database => /</mode:projectionRules>
</mode:projection>
<mode:projection jcr:name="filesystem projection" mode:source="filesystem" mode:workspaceName="default">
<mode:projectionRules>/filesystem => /</mode:projectionRules>
</mode:projection>
</mode:projections>
</mode:workspace>
</mode:workspaces>
</mode:source>
</mode:sources>
</configuration>