Hi team, Do I need to write & deploy a custom Geode Function in order to run the dynamic Lucene query? Can I get some help, please?
I need to somehow execute a dynamic lucene query on Geode cluster. I am able to run successfully a static lucene query using the standard Lucene's StandardQueryParser, though. Regards, Ajay Vasudevan On Sun, Apr 5, 2020 at 5:29 PM vas aj <vasudevan.a...@gmail.com> wrote: > ++ Dev team > > Hi team, > > I am trying to execute Lucene query from Geode cache-client with the > following : > > class CustomerServiceImplTest { >> @Inject CustomerServiceGemfireConfiguration >> customerServiceGemfireConfiguration; >> @Test >> void getAllInterestedCustomers() throws Exception { >> LuceneService luceneService = >> CustomerServiceGemfireConfiguration.getLuceneService(); >> String title = "John"; >> LuceneQuery<Long, Customer> luceneQuery = >> luceneService >> .createLuceneQueryFactory() >> .setLimit(50) >> .create( >> "customerLuceneIndex", >> "customers", >> index -> { >> return IntPoint.newRangeQuery("age", 25, 35); >> }); >> Collection<Customer> allInterestedCustomers = >> luceneQuery.findValues(); >> System.out.println("all Customers => " + allInterestedCustomers); >> } >> } > > > I get the below error at luceneQuery.findValues() while executing it. Can > someone help me? > > org.apache.geode.cache.client.ServerOperationException: remote server on >> 192.168.0.3(24550:loner):38432:0d2d154b: While performing a remote >> executeRegionFunction >> at >> org.apache.geode.cache.client.internal.ExecuteRegionFunctionOp$ExecuteRegionFunctionOpImpl.processResponse(ExecuteRegionFunctionOp.java:437) >> at >> org.apache.geode.cache.client.internal.AbstractOp.processResponse(AbstractOp.java:222) >> at >> org.apache.geode.cache.client.internal.AbstractOp.attemptReadResponse(AbstractOp.java:195) >> at >> org.apache.geode.cache.client.internal.AbstractOp.attempt(AbstractOp.java:382) >> at >> org.apache.geode.cache.client.internal.AbstractOpWithTimeout.attempt(AbstractOpWithTimeout.java:45) >> at >> org.apache.geode.cache.client.internal.ConnectionImpl.execute(ConnectionImpl.java:263) >> at >> org.apache.geode.cache.client.internal.pooling.PooledConnection.execute(PooledConnection.java:353) >> at >> org.apache.geode.cache.client.internal.OpExecutorImpl.executeWithPossibleReAuthentication(OpExecutorImpl.java:750) >> at >> org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:138) >> at >> org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:787) >> at >> org.apache.geode.cache.client.internal.ExecuteRegionFunctionOp.execute(ExecuteRegionFunctionOp.java:90) >> at >> org.apache.geode.cache.client.internal.ServerRegionProxy.executeFunction(ServerRegionProxy.java:687) >> at >> org.apache.geode.internal.cache.execute.ServerRegionFunctionExecutor.executeOnServer(ServerRegionFunctionExecutor.java:206) >> at >> org.apache.geode.internal.cache.execute.ServerRegionFunctionExecutor.executeFunction(ServerRegionFunctionExecutor.java:158) >> at >> org.apache.geode.internal.cache.execute.ServerRegionFunctionExecutor.execute(ServerRegionFunctionExecutor.java:390) >> at >> org.apache.geode.internal.cache.execute.ServerRegionFunctionExecutor.execute(ServerRegionFunctionExecutor.java:351) >> at >> org.apache.geode.cache.lucene.internal.LuceneQueryImpl.findTopEntries(LuceneQueryImpl.java:121) >> at >> org.apache.geode.cache.lucene.internal.LuceneQueryImpl.findPages(LuceneQueryImpl.java:99) >> at >> org.apache.geode.cache.lucene.internal.LuceneQueryImpl.findResults(LuceneQueryImpl.java:85) >> at >> org.apache.geode.cache.lucene.internal.LuceneQueryImpl.findValues(LuceneQueryImpl.java:78) >> at >> CustomerServiceImplTest.getAllInterestedCustomers(CustomerServiceImplTest.java:35) >> >> *Caused by: java.lang.ClassNotFoundException: **CustomerServiceImplTest >> <<<< Why should the test class be loaded in Geode server ?* >> at java.net.URLClassLoader.findClass(URLClassLoader.java:382) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >> ... >> ... >> > > Regards > Aj Vas >