Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr、聚类(carrot)和NoClassDefFoundError_Solr_Cluster Analysis_Noclassdeffounderror - Fatal编程技术网

Solr、聚类(carrot)和NoClassDefFoundError

Solr、聚类(carrot)和NoClassDefFoundError,solr,cluster-analysis,noclassdeffounderror,Solr,Cluster Analysis,Noclassdeffounderror,我正在运行Solr3.4,并希望使用clusteringComponent。 遵循本教程:结合solrconfig.xml中的默认条目,我有以下配置@solrconfig.xml <searchComponent name="clustering" enable="${solr.clustering.enabled:true}" class="org.apache.solr.handler.clusterin

我正在运行Solr3.4,并希望使用clusteringComponent。 遵循本教程:结合solrconfig.xml中的默认条目,我有以下配置@solrconfig.xml

  <searchComponent name="clustering" 
                   enable="${solr.clustering.enabled:true}"
                   class="org.apache.solr.handler.clustering.ClusteringComponent" >

    <!-- Declare an engine -->
    <lst name="engine">
      <str name="name">default</str>
      <str name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
      <str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
    </lst>

    <lst name="engine">
      <str name="name">stc</str>
      <str name="carrot.algorithm">org.carrot2.clustering.stc.STCClusteringAlgorithm</str>
    </lst>
  </searchComponent>


<requestHandler name="/cl" class="solr.SearchHandler" >
  <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">UEBSCHRIFT</str>
    <str name="carrot.snippet">TEXT</str>
  </lst>
关键是,我不知道这意味着什么。我找了好几个小时都没找到解决办法

顺便说一下:我正在使用以下选项运行tomcat:

export CATALINA_OPTS="-Dsolr.clustering.enabled=true"
(Solr 3.4中是否仍需要此选项?)

catalina选项是java命令的一部分,您可以通过
ps-efa

/usr/lib64/jvm/java-1_6_0-ibm-1.6.0/jre//bin/java -Djava.util.logging.config.file=/opt/tomcat6/conf/logging.properties-Xms2048m-Xmx2048m-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Dsolr.clustering.enabled=true-Djava.annowed.dirs=/opt/tomcat6/annowed-classpath/opt/tomcat6/bin/bootstrap.jar-Dcatalina.base=/opt/tomcat6 -Dcatalina.home=/opt/tomcat6-Djava.io.tmpdir=/opt/tomcat6/temp org.apache.catalina.startup.Bootstrap start

有人知道我能做些什么来解决这个问题吗

//更新: 如果添加hppc-0.3.4-jdk15.jar,则会出现以下错误:

java.lang.NoClassDefFoundError: org.apache.mahout.math.matrix.DoubleMatrix2D
    at java.lang.J9VMInternals.verifyImpl(Native Method)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:72)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
    at org.carrot2.clustering.lingo.LingoClusteringAlgorithm.&lt;init&gt;(LingoClusteringAlgorithm.java:134)
[...]
Caused by: java.lang.ClassNotFoundException: org.apache.mahout.math.matrix.DoubleMatrix2D
    at java.lang.Throwable.&lt;init&gt;(Throwable.java:80)
    at java.lang.ClassNotFoundException.&lt;init&gt;(ClassNotFoundException.java:76)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:419)
    at java.lang.ClassLoader.loadClass(ClassLoader.java)
    at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:923)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:609)
    ... 29 more

看起来,我必须安装一个mahout归档,但我认为,所有集群包都包含在Solr 3.4中?!看起来,我走错路了

如果将Solr与tomcat一起作为单独的实例使用,则需要复制jar,以便它们可用于Solr

引自

注意:此Solr示例服务器引用了外部的某些Solr JAR 此服务器目录用于在中包含语句的非核心模块 solrconfig.xml。如果您复制了此示例服务器并希望 使用ExtractingRequestHandler(SolrCell)、DataImportHandler(DIH), UIMA、集群组件或“contrib”中的其他模块 需要将所需的jar复制到solr/lib或更新路径 到solrconfig.xml中的jar

在solrconfig.xml中检查集群和胡萝卜罐。

可能您缺少了
hppc-0.3.4-jdk15.jar

是否添加了Mahout数学包

这似乎是一个单独的包

NoClassDefFoundError: org.apache.mahout.math.matrix.DoubleMatrix2D
                      ^^^^^^^^^^^^^^^^^^^^^^

为什么不使用Solr的默认打包(这是官方支持的)?它随Jetty一起提供,将为您省去与类路径相关的麻烦,因为已经配置好了

回答您的问题,您需要Solr默认集群扩展文件夹中的所有JAR;对于4.0alpha,这将是:contrib/clustering/lib/*.jar

胡萝卜2-core-3.5.0.jar hppc-0.3.3.jar jackson-core-asl-1.7.4.jar jackson-mapper-asl-1.7.4.jar mahout-collections-0.3.jar mahout-math-0.3.jar
simple-xml-2.4.1.jar

使用solR 4将此文件复制到文件夹conf中


libdir是
,insight libdir是
apache-solr-clustering-3.4.0.jar
。我还尝试将
hppc-0.3.4-jdk15.jar
carrot2-core-3.4.0.jar
复制到libdir。但问题依然存在。如果我看一下solr wiki,我会读到:
>3.1.2完全集成到solr中,不需要特殊下载。
它不是开箱即用吗?请看一下我的更新。看来我需要一些收银员的包裹。我想我所需要的一切就是深入了解
apache-solr-clustering-3.4.0.jar
文件-不是吗?请将堆栈跟踪错误重新格式化为可读的形状(具有适当的缩进)@Anony Mousse我希望,最好现在就阅读。嘿,谢谢。就这样。它起作用了。为什么您知道,需要哪个java归档文件?---“>为什么不使用Solr的默认打包(这是官方支持的)?”
NoClassDefFoundError: org.apache.mahout.math.matrix.DoubleMatrix2D
                      ^^^^^^^^^^^^^^^^^^^^^^