Message Boards
Issue in connecting to differetn Index using elasticsearch
Madhava Venganapalli, modified 4 Years ago.
Issue in connecting to differetn Index using elasticsearch
New Member Posts: 3 Join Date: 12/2/19 Recent Posts
Hi Team,
I have a requirement to connect to different index in elastic search server and get the results and display in my portal.
I have created a portlet and added below entries to write rest client to connect to different index of ES.gradle:
compile group: 'org.elasticsearch', name: 'elasticsearch', version: '6.5.0'
compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-client', version: '6.5.0'
compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-high-level-client', version: '6.5.0'
compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-client-sniffer', version: '6.5.0'
bnd:-includeresource: META-INF/lib/elasticsearch-rest-high-level-client.jar=elasticsearch-rest-high-level-client-[0-9]*.jar;lib=true
Import-Package: *;resolution:="optional
if i use standalone program to connect to this index and get the data i am able to fetch and show the results.
try(RestHighLevelClient esClient = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")))) {
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.timeout(new TimeValue(600, TimeUnit.SECONDS)); // Request timeout
sourceBuilder.from(0);
sourceBuilder.sort(new ScoreSortBuilder().order(SortOrder.DESC)); //Result set ordering
//MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("title", "python");
BoolQueryBuilder query = new BoolQueryBuilder();
//query.must(new MatchQueryBuilder("title", "Depth"));
query.must(QueryBuilders.queryStringQuery("test*")
.field("url")
.lenient(true)
.escape(true)
.analyzeWildcard(true)
.fuzziness(Fuzziness.ZERO)
.defaultOperator(Operator.AND)
.boost(1.0f));
sourceBuilder.query(query);
SearchRequest searchRequest = new SearchRequest("content");
searchRequest.source(sourceBuilder);
System.out.println(searchRequest);
final SearchResponse searchResponse = esClient.search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = searchResponse.getHits();
System.out.println(hits.totalHits);
for (SearchHit searchHit : hits) {
System.out.println(searchHit);
}
} catch(IOException e) {
e.printStackTrace();
}Same piece of code i am trying to use and deploy in Liferay 7.1 server i am getting below exception at the time of deployment.
2020-03-27 06:49:00.986 ERROR [Refresh Thread: Equinox Container: 6b856545-3231-41e5-b63a-275efac5c2cd][ROOT:93] bundle portal-search:1.0.0 (3982)BundleComponentActivator : Unexpected failure enabling component holder com.portal.search.resource.SearchMVCResource
java.lang.NoClassDefFoundError: org/elasticsearch/index/query/QueryBuilder
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructors(Class.java:1651)
at org.apache.felix.scr.impl.inject.ComponentConstructor.<init>(ComponentConstructor.java:94)
at org.apache.felix.scr.impl.inject.ComponentMethodsImpl.initComponentMethods(ComponentMethodsImpl.java:106)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:1008)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1026)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:936)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:756)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432)
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665)
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339)
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:381)
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49)
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:263)
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196)
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169)
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:1)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:230)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:137)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:129)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:191)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)
at org.eclipse.osgi.container.Module.start(Module.java:467)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:468)
at org.eclipse.osgi.container.ModuleContainer.start(ModuleContainer.java:777)
at org.eclipse.osgi.container.ModuleContainer.applyDelta(ModuleContainer.java:768)
at org.eclipse.osgi.container.ModuleContainer.resolveAndApply(ModuleContainer.java:538)
at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:484)
at org.eclipse.osgi.container.ModuleContainer.refresh(ModuleContainer.java:1028)
at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1409)
at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.index.query.QueryBuilder cannot be found by portal-search_1.0.0
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:151)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 42 more
Is it possible to integrate this way? Please kindly help me if i have to deploy any other dependencies or any changes needed.Thank's for any suggestions!
I have a requirement to connect to different index in elastic search server and get the results and display in my portal.
I have created a portlet and added below entries to write rest client to connect to different index of ES.gradle:
compile group: 'org.elasticsearch', name: 'elasticsearch', version: '6.5.0'
compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-client', version: '6.5.0'
compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-high-level-client', version: '6.5.0'
compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-client-sniffer', version: '6.5.0'
bnd:-includeresource: META-INF/lib/elasticsearch-rest-high-level-client.jar=elasticsearch-rest-high-level-client-[0-9]*.jar;lib=true
Import-Package: *;resolution:="optional
if i use standalone program to connect to this index and get the data i am able to fetch and show the results.
try(RestHighLevelClient esClient = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")))) {
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.timeout(new TimeValue(600, TimeUnit.SECONDS)); // Request timeout
sourceBuilder.from(0);
sourceBuilder.sort(new ScoreSortBuilder().order(SortOrder.DESC)); //Result set ordering
//MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("title", "python");
BoolQueryBuilder query = new BoolQueryBuilder();
//query.must(new MatchQueryBuilder("title", "Depth"));
query.must(QueryBuilders.queryStringQuery("test*")
.field("url")
.lenient(true)
.escape(true)
.analyzeWildcard(true)
.fuzziness(Fuzziness.ZERO)
.defaultOperator(Operator.AND)
.boost(1.0f));
sourceBuilder.query(query);
SearchRequest searchRequest = new SearchRequest("content");
searchRequest.source(sourceBuilder);
System.out.println(searchRequest);
final SearchResponse searchResponse = esClient.search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = searchResponse.getHits();
System.out.println(hits.totalHits);
for (SearchHit searchHit : hits) {
System.out.println(searchHit);
}
} catch(IOException e) {
e.printStackTrace();
}Same piece of code i am trying to use and deploy in Liferay 7.1 server i am getting below exception at the time of deployment.
2020-03-27 06:49:00.986 ERROR [Refresh Thread: Equinox Container: 6b856545-3231-41e5-b63a-275efac5c2cd][ROOT:93] bundle portal-search:1.0.0 (3982)BundleComponentActivator : Unexpected failure enabling component holder com.portal.search.resource.SearchMVCResource
java.lang.NoClassDefFoundError: org/elasticsearch/index/query/QueryBuilder
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructors(Class.java:1651)
at org.apache.felix.scr.impl.inject.ComponentConstructor.<init>(ComponentConstructor.java:94)
at org.apache.felix.scr.impl.inject.ComponentMethodsImpl.initComponentMethods(ComponentMethodsImpl.java:106)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:1008)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1026)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:936)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:756)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432)
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665)
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339)
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:381)
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49)
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:263)
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196)
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169)
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:1)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:230)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:137)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:129)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:191)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)
at org.eclipse.osgi.container.Module.start(Module.java:467)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:468)
at org.eclipse.osgi.container.ModuleContainer.start(ModuleContainer.java:777)
at org.eclipse.osgi.container.ModuleContainer.applyDelta(ModuleContainer.java:768)
at org.eclipse.osgi.container.ModuleContainer.resolveAndApply(ModuleContainer.java:538)
at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:484)
at org.eclipse.osgi.container.ModuleContainer.refresh(ModuleContainer.java:1028)
at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1409)
at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.index.query.QueryBuilder cannot be found by portal-search_1.0.0
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:151)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 42 more
Is it possible to integrate this way? Please kindly help me if i have to deploy any other dependencies or any changes needed.Thank's for any suggestions!
Madhava Venganapalli, modified 4 Years ago.
RE: Issue in connecting to differetn Index using elasticsearch
New Member Posts: 3 Join Date: 12/2/19 Recent Posts
Able to connect now. thanks
Rafiq Uz Zama, modified 3 Years ago.
RE: Issue in connecting to differetn Index using elasticsearch
Junior Member Posts: 30 Join Date: 11/25/11 Recent Posts
Hi Madhava,
What was the fix you did for the above issue?
Can you please elaborate?
Thanks
What was the fix you did for the above issue?
Can you please elaborate?
Thanks
Rafiq Uz Zama, modified 3 Years ago.
RE: Issue in connecting to differetn Index using elasticsearch
Junior Member Posts: 30 Join Date: 11/25/11 Recent Posts
Ah.. Resolved now..
Fix::
build.gradle -- compile group: "org.elasticsearch", name: "elasticsearch", version: '7.8.0'
bnd file -- ( includeresource is not required)
Import-Package:\
!org.*,\
*
Thanks.
Fix::
build.gradle -- compile group: "org.elasticsearch", name: "elasticsearch", version: '7.8.0'
bnd file -- ( includeresource is not required)
Import-Package:\
!org.*,\
*
Thanks.