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

Reply via email to