Hello,

I've defined a custom nodetype with some properties, and now I am implementing Full Text Search. I would like this search to be done on several of the properties of my Custom Node, right now it is only working for jcr:data which is inherited from nt:resource.

In order to achieve this I have created an indexing_configuration.xml file as advised on the website, adding rules for each of the properties I want to index, like so:

/<?xml version="1.0"?>
<!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.0.dtd";>
<configuration xmlns:nt="http://www.jcp.org/jcr/nt/1.0";>
<!--
<index-rule nodeType="toolTest:contractTest">
  <property>state_of_contract</property>
  <property>author</property>
...
  </index-rule>
</configuration>

/When I run my application I get the following exception when trying to login to my repository:

/17625 [http-8080-2] WARN org.apache.jackrabbit.core.query.lucene.SearchIndex - Exception initializing indexing configuration from: C:/.../web/WEB-INF/spring/indexing_configuration.xml
*javax.jcr.NamespaceException: Unknown namespace prefix toolTest.*
at org.apache.jackrabbit.core.nodetype.xml.AdditionalNamespaceResolver.getURI(AdditionalNamespaceResolver.java:86) at org.apache.jackrabbit.spi.commons.conversion.NameParser.parse(NameParser.java:116) at org.apache.jackrabbit.spi.commons.conversion.ParsingNameResolver.getQName(ParsingNameResolver.java:62) at org.apache.jackrabbit.core.query.lucene.IndexingConfigurationImpl$IndexingRule.getNodeTypeName(IndexingConfigurationImpl.java:640) at org.apache.jackrabbit.core.query.lucene.IndexingConfigurationImpl$IndexingRule.<init>(IndexingConfigurationImpl.java:537) at org.apache.jackrabbit.core.query.lucene.IndexingConfigurationImpl.init(IndexingConfigurationImpl.java:125) at org.apache.jackrabbit.core.query.lucene.SearchIndex.createIndexingConfiguration(SearchIndex.java:935) at org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(SearchIndex.java:445) at org.apache.jackrabbit.core.query.AbstractQueryHandler.init(AbstractQueryHandler.java:53) at org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(SearchManager.java:583) at org.apache.jackrabbit.core.SearchManager.<init>(SearchManager.java:265) at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getSearchManager(RepositoryImpl.java:1613) at org.apache.jackrabbit.core.RepositoryImpl.initWorkspace(RepositoryImpl.java:606) at org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:415) at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:305) at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:557) at org.apache.jackrabbit.core.TransientRepository$1.getRepository(TransientRepository.java:186) at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:265) at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:333) at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:363) at com.ideal.electool.contracttool.jackrabbit.RepositoryLogin.startRepository(RepositoryLogin.java:88) at com.ideal.electool.contracttool.jackrabbit.RepositoryStorage.storage(RepositoryStorage.java:63) at com.electool.bidding.controller.pageflow.organizerPages.contractEdit.ManageContractPage.doProcessUnprotectedAction(ManageContractPage.java:116) at com.electool.framework.controller.base.commands.AbstractProtectingPostGetCommand.processData(AbstractProtectingPostGetCommand.java:167) at com.electool.framework.controller.base.PostGetCommandControllerBase.handleRequestInternal(PostGetCommandControllerBase.java:89) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:723) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:663) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:358)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  at java.lang.Thread.run(Unknown Source)
*17640 [http-8080-2] WARN org.apache.jackrabbit.core.query.lucene.SearchIndex - C:/.../web/WEB-INF/spring/indexing_configuration.xml ignored.

*/The namespace I am using is registered after logging into the repository for the first time, thus upon attempting to use the namespace in the indexing configuration file it will always give me this error.

What is the correct way to index these properties?

Thank you!

Reply via email to