Hi Vivek, Lucene indexing is a bit tricky to set up. Here is a good example on how to do it: - https://svn.apache.org/repos/asf/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/blueGreen/Persistence.java
This class is used in a couple of tests in the "composite" parent folder. I referred to this code extensively when I was recently going through the same exercise, trying to get Lucene indexing to work and be used for queries in my own code. I was getting the same traversal warning you are getting. Digging through this code helped me figure out what I needed to do to make Lucene work for me. HTH -MR On Tue, Apr 21, 2020 at 6:57 AM Vivek Kamble <[email protected]> wrote: > Hi, > > Im using jackrabbit oak version 1.10.8, Im trying to configure lucene > indexes, refered,https://gist.github.com/chetanmeh/c1ccc4fa588ed1af467b, > but query is not picking up luecen index, test ended up with warning, > "Traversed 1000 nodes with filter Filter, consider creating an index or > changing the query" > > > > Debugging using explain showed that Lucene index never pickuped for query. > > > > below is repo creation code, > > > > final RDBOptions options = > > new > RDBOptions().tablePrefix(dbDetails.get(DB_TABLE_PREFIX)).dropTablesOnClose( > > false); > > final DataSource ds = > > RDBDataSourceFactory.forJdbcUrl( > > dbDetails.get("dbURL"), > > dbDetails.get("dbUser"), > > dbDetails.get("dbPassword")); > > final Properties properties = buildS3Properties(dbDetails); > > final S3DataStore s3DataStore = buildS3DataStore(properties); > > final DataStoreBlobStore dataStoreBlobStore = new > DataStoreBlobStore(s3DataStore); > > final Whiteboard wb = new DefaultWhiteboard(); > > bapRegistration = > > wb.register( > > BlobAccessProvider.class, > > (BlobAccessProvider) dataStoreBlobStore, > > properties); > > documentNodeStore = > > new RDBDocumentNodeStoreBuilder() > > .setBlobStore(dataStoreBlobStore) > > .setBundlingDisabled(true) > > .setRDBConnection(ds, options) > > .build(); > > > > LuceneIndexProvider provider = new LuceneIndexProvider(); > > Oak oak = new Oak(documentNodeStore); > > oak = > > oak > > .withAsyncIndexing("async", 1) > > .with(new LuceneIndexEditorProvider()) > > .with((QueryIndexProvider) provider) > > .with((Observer) provider); > > repository = new Jcr(oak).with(wb).createRepository(); > > > > > > try { > > createLuceneIndex(dbDetails); > > } catch (final RepositoryException e) { > > throw new CMSException(e); > > } > > > > return repository; > > > > > > public static void > createLuceneIndex(final Map<String, String> dbDetails) > > > throws RepositoryException { > > Session session = getSession(dbDetails); > > try { > > session.getNode("/oak:index/testLucene"); > > } catch (final PathNotFoundException e) { > > Node lucene = > > JcrUtils.getOrCreateByPath( > > "/oak:index/testLucene", > > "oak:Unstructured", > > "oak:QueryIndexDefinition", > > session, > > false); > > lucene.setProperty("compatVersion", 2); > > lucene.setProperty("type", "lucene"); > > lucene.setProperty("async", "async"); > > Node rules = lucene.addNode("indexRules", "nt:unstructured"); > > > > Node allProps = > > rules.addNode(JcrConstants.NT_FOLDER).addNode("properties", > "nt:unstructured"); > > Node propNode = allProps.addNode("allProps"); > > propNode.setProperty("name", ".*"); > > propNode.setProperty("isRegexp", true); > > propNode.setProperty("propertyIndex", true); > > propNode.setProperty("analyzed", true); > > > > > > Node manuscriptNode = > > > rules.addNode("spr:manuscript_id").addNode("properties","nt:unstructured"); > > Node manuscriptNode2 = > > manuscriptNode.addNode("spr:manuscript_id"); > > manuscriptNode2.setProperty("name","spr:manuscript_id"); > > manuscriptNode2.setProperty("analyzed", true); > > manuscriptNode2.setProperty("isRegexp", true); > > manuscriptNode2.setProperty("propertyIndex", true); > > manuscriptNode2.setProperty("nodeScopeIndex", true); > > manuscriptNode2.setProperty("type", > PropertyType.TYPENAME_STRING); > > > > > > session.save(); > > session.logout(); > > log.info("Lucene index created"); > > } > > } > > > > Tried different JCR_SQL2 queries : > > 1) " select * from [spr:task] where contains(.*,'torgeir')" > > 2) " select * from [spr:task] where contains([spr:manuscript_id],'torgeir') > " > > > > Any help would b great... > > Thanks in advance. >
