Hi, I am currently working on the upgrade from Solr 7.7.1 to Solr 8.2.0.
For the clustering, I am using lingo3g. There was no error in the earlier version, but I am getting this error in Solr 8.2.0, even though the configurations are the same. This is my configuration for clustering in solrconfig.xml: <searchComponent name="clustering" enable="${solr.clustering.enabled:true}" class="solr.clustering.ClusteringComponent" > <lst name="engine"> <str name="name">lingo</str> <str name="carrot.algorithm">com.carrotsearch.lingo3g.Lingo3GClusteringAlgorithm</str> <str name="carrot.resourcesDir">clustering/carrot2</str> </lst> <!-- An example definition for the STC clustering algorithm. --> <lst name="engine"> <str name="name">stc</str> <str name="carrot.algorithm">org.carrot2.clustering.stc.STCClusteringAlgorithm</str> </lst> <!-- An example definition for the bisecting kmeans clustering algorithm. --> <lst name="engine"> <str name="name">kmeans</str> <str name="carrot.algorithm">org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm</str> </lst> </searchComponent> <requestHandler name="/clustering" startup="lazy" enable="${solr.clustering.enabled:true}" class="solr.SearchHandler"> <lst name="defaults"> <str name="echoParams">none</str> <int name="rows">150</int> <str name="wt">json</str> <str name="indent">true</str> <str name="df">text</str> <str name="fl">null</str> <bool name="clustering">true</bool> <bool name="clustering.results">true</bool> <str name="clustering.engine">default</str> <str name="carrot.id">id</str> <!-- Field name with the logical "title" of a each document (optional) --> <str name="carrot.title">subject</str> <!-- Field name with the logical "URL" of a each document (optional) --> <str name="carrot.url">resourcename</str> <!-- Field name with the logical "content" of a each document (optional) --> <str name="carrot.snippet">content</str> <!-- Apply highlighter to the title/ content and use this for clustering. --> <bool name="carrot.produceSummary">true</bool> <int name="carrot.fragSize">200</int> <!-- take a max. of 3 fragments from each document's match. --> <str name="carrot.summarySnippets">3</str> <!-- the maximum number of labels per cluster --> <int name="carrot.numDescriptions">20</int> <!-- produce sub clusters --> <bool name="carrot.outputSubClusters">true</bool> <str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str> </lst> <arr name="last-components"> <str>clustering</str> </arr> </requestHandler> This is the error I am getting: HTTP ERROR 500 Problem accessing /edm/calls/clustering. Reason: Server Error Caused by: java.lang.NoClassDefFoundError: org/apache/commons/lang/ObjectUtils at lingo3g.s.hashCode(Unknown Source) at org.apache.commons.lang3.builder.HashCodeBuilder.append(HashCodeBuilder.java:848) at org.apache.commons.lang3.builder.HashCodeBuilder.append(HashCodeBuilder.java:901) at org.apache.commons.lang3.builder.HashCodeBuilder.appendArray(HashCodeBuilder.java:883) at org.apache.commons.lang3.builder.HashCodeBuilder.append(HashCodeBuilder.java:846) at org.apache.commons.lang3.ArrayUtils.hashCode(ArrayUtils.java:192) at org.carrot2.util.resource.ResourceLookup.hashCode(ResourceLookup.java:201) at java.util.HashMap.hash(Unknown Source) at java.util.HashMap.get(Unknown Source) at com.carrotsearch.lingo3g.Lingo3GClusteringAlgorithm.a(Unknown Source) at com.carrotsearch.lingo3g.Lingo3GClusteringAlgorithm.init(Unknown Source) at org.carrot2.core.ControllerUtils.init(ControllerUtils.java:52) at org.carrot2.core.PoolingProcessingComponentManager$ComponentInstantiationListener.objectInstantiated(PoolingProcessingComponentManager.java:189) at org.carrot2.core.PoolingProcessingComponentManager$ComponentInstantiationListener.objectInstantiated(PoolingProcessingComponentManager.java:170) at org.carrot2.util.pool.SoftUnboundedPool.borrowObject(SoftUnboundedPool.java:83) at org.carrot2.core.PoolingProcessingComponentManager.prepare(PoolingProcessingComponentManager.java:129) at org.carrot2.core.Controller.process(Controller.java:342) at org.carrot2.core.Controller.process(Controller.java:247) at org.apache.solr.handler.clustering.carrot2.CarrotClusteringEngine.lambda$cluster$2(CarrotClusteringEngine.java:241) at org.apache.solr.handler.clustering.carrot2.CarrotClusteringEngine.withContextClassLoader(CarrotClusteringEngine.java:557) at org.apache.solr.handler.clustering.carrot2.CarrotClusteringEngine.cluster(CarrotClusteringEngine.java:240) at org.apache.solr.handler.clustering.ClusteringComponent.process(ClusteringComponent.java:237) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:305) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199) at org.apache.solr.core.SolrCore.execute(SolrCore.java:2578) at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:780) at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:566) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:423) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:350) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1711) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1347) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1678) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1249) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:152) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:505) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:427) at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:321) at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:159) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917) at java.lang.Thread.run(Unknown Source) What could be the issue that is causing this? Regards, Edwin