As per the subject I am getting java.lang.NoClassDEfFoundError
org/carrot2/core/ControllerFactory
when I try to run clustering.

I am using Solr 3.1:

I get the following error:

java.lang.NoClassDefFoundError: org/carrot2/core/ControllerFactory
        at 
org.apache.solr.handler.clustering.carrot2.CarrotClusteringEngine.<init>(CarrotClusteringEngine.java:74)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown 
Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at 
org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:412)
        at 
org.apache.solr.handler.clustering.ClusteringComponent.inform(ClusteringComponent.java:203)
        at 
org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:522)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:594)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:458)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:207)
        at 
org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
        at 
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94)
        at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
        at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at 
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
        at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
        at 
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
        at 
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
        at 
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
        at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at 
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
        at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at 
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
        at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at 
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
        at org.mortbay.jetty.Server.doStart(Server.java:224)
        at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:194)
        at org.mortbay.start.Main.start(Main.java:534)
        at org.mortbay.start.Main.start(Main.java:441)
        at org.mortbay.start.Main.main(Main.java:119)
Caused by: java.lang.ClassNotFoundException: org.carrot2.core.ControllerFactory
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.net.FactoryURLClassLoader.loadClass(Unknown Source)

using the following configuration


 <searchComponent
class="org.apache.solr.handler.clustering.ClusteringComponent"
name="clustering">
  <lst name="engine">
    <str name="name">default</str>
    <str 
name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>

    <!-- Engine-specific parameters -->
    <str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
  </lst>
</searchComponent>
  <requestHandler name="/search"
class="org.apache.solr.handler.component.SearchHandler">
    <lst name="defaults">
      <str name="echoParams">explicit</str>
    </lst>
    <!--
    By default, this will register the following components:

    <arr name="components">
      <str>query</str>
      <str>facet</str>
      <str>mlt</str>
      <str>highlight</str>
      <str>debug</str>
    </arr>
</requestHandler>

<requestHandler name="clusty" class="solr.SearchHandler" default="true">
  <lst name="defaults">
    <str name="echoParams">explicit</str>

    <bool name="clustering">true</bool>
    <str name="clustering.engine">default</str>
    <bool name="clustering.results">true</bool>

    <!-- Fields to cluster on -->
    <str name="carrot.title">title</str>
    <str name="carrot.snippet">all_text</str>
    <str name="hl.fl">all_text title</str>
     <!-- for this field, we want no fragmenting, just highlighting -->
     <str name="f.name.hl.fragsize">150</str>
  </lst>
  <arr name="last-components">
    <str>clustering</str>
  </arr>
</requestHandler>



with the following command  to start solr
java -Dsolr.clustering.enabled=true
-Dsolr.solr.home="C:\projects\solrexample\solr" -jar start.jar

Any idea as to why crusty is not working?

Thanks,
Bryan Rasmussen

Reply via email to