Hi ,
i am trying to implement lucene index fulltest search with osgi RDB
documentService,but its not working,
Lucene search working fine if i created repository like below,
Scenario 1: searching working correctly
@Override
protected ContentRepository createRepository() {
return getOakRepo().createContentRepository();
}
Oak getOakRepo() {
// LowCostLuceneIndexProvider provider = new
LowCostLuceneIndexProvider();
LuceneIndexProvider provider = new LuceneIndexProvider();
return new Oak(createInitialContent())
.with(new OpenSecurityProvider())
.with((QueryIndexProvider) provider)
.with((Observer) provider)
.with(new LuceneIndexEditorProvider());
}
private DocumentNodeStore createInitialContent()
{
DocumentNodeStore ds=createRDBStore();
EditorHook hook = new EditorHook(
new CompositeEditorProvider(new NamespaceEditorProvider(),
new TypeEditorProvider()));
OakInitializer.initialize(ds, new InitialContent(), hook);
return ds;
}
public DocumentNodeStore createRDBStore()
{
String jdbcurl="jdbc:postgresql://127.0.0.1:5432/SP05";
String user="postgres";
String pw="manager";
DataSource dataSource = RDBDataSourceFactory.forJdbcUrl(jdbcurl, user,
pw);
DocumentNodeStore store = new
RDBDocumentNodeStoreBuilder().newRDBDocumentNodeStoreBuilder()
.setRDBConnection(dataSource).build();
return store;
}
Scenario 2: searching not working
@Autowired
private NodeStore documentNodeStoreService;
@Override
protected ContentRepository createRepository() {
return getOakRepo().createContentRepository();
}
Oak getOakRepo() {
// LowCostLuceneIndexProvider provider = new
LowCostLuceneIndexProvider();
LuceneIndexProvider provider = new LuceneIndexProvider();
return new Oak(documentNodeStoreService)
.with(new OpenSecurityProvider())
.with((QueryIndexProvider) provider)
.with((Observer) provider)
.with(new LuceneIndexEditorProvider());
}
In this case repository get created but searching not working,
giving error like Traversal query (query without index)
Can you tell me ,what wrong i am doing here?
Code to create Lucene index in both scenario ,
protected void createTestIndexNode() throws Exception {
Tree index = root.getTree("/");
Tree indexDefn = createTestIndexNode(index,
LuceneIndexConstants.TYPE_LUCENE);
TestUtil.useV2(indexDefn);
indexDefn.setProperty(LuceneIndexConstants.TEST_MODE, true);
indexDefn.setProperty(FulltextIndexConstants.EVALUATE_PATH_RESTRICTION,
true);
Tree props = TestUtil.newRulePropTree(indexDefn, "nt:base");
props.getParent().setProperty(FulltextIndexConstants.INDEX_NODE_NAME, true);
TestUtil.enablePropertyIndex(props, "c1/p", false);
TestUtil.enableForFullText(props,
FulltextIndexConstants.REGEX_ALL_PROPS, true);
TestUtil.enablePropertyIndex(props, "a/name", false);
TestUtil.enablePropertyIndex(props, "b/name", false);
TestUtil.enableFunctionIndex(props, "length([name])");
TestUtil.enableFunctionIndex(props, "lower([name])");
TestUtil.enableFunctionIndex(props, "upper([name])");
root.commit();
}