java.lang.NoClassDefFoundError:org / noggit / CharArr在添加要在solr中编制索引的文档时

时间:2013-10-17 12:33:10

标签: java solr solrj

我使用java客户端程序将数据添加到我的solr服务器中的索引中。我的来源如下: -

SolrServer solrServer = new HttpSolrServer("http://10.219.224.91:4040/solr/test");
          System.out.println("<ul>");
          String[] passengerType={"Infant","Handicapped","Unaccompanied minor", "General Category"};
          for(int i = 0; i < 100; i++) {
            SolrInputDocument solrInputDocument = new SolrInputDocument();
            solrInputDocument.addField("id", new String("widget " + i));
            // add three random categories
            for(int j = 0; j < 3; j++) {
                solrInputDocument.addField("category", passengerType[new Random().nextInt(passengerType.length)]);
            }
            solrInputDocument.addField("size", new Random().nextInt(10));
            // this is cheating below - but saves us from the query string...
            solrInputDocument.addField("text", "a");
            solrServer.add(solrInputDocument);
            System.out.println("<li> Adding: " + solrInputDocument + "</li>\n");
           }
          System.out.println("</ul>");
          solrServer.commit();

在运行我正在运行的应用程序时: -

  

线程“main”中的异常java.lang.NoClassDefFoundError:   org / noggit / CharArr at   org.apache.solr.common.util.JavaBinCodec。(JavaBinCodec.java:474)     在   org.apache.solr.client.solrj.impl.BinaryResponseParser.processResponse(BinaryResponseParser.java:41)     在   org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:407)     在   org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)     在   org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:117)     在org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:116)     在org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:102)     在IndexDriver.main(IndexDriver.java:39)引起:   java.lang.ClassNotFoundException:org.noggit.CharArr at   java.net.URLClassLoader $ 1.run(未知来源)at   java.net.URLClassLoader $ 1.run(未知来源)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(未知来源)at   java.lang.ClassLoader.loadClass(未知来源)at   sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)at   java.lang.ClassLoader.loadClass(未知来源)

错误即将出现在这一行 -

  

solrServer.add(solrInputDocument);

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:8)

我认为您没有在程序中包含noggit-0.5.jar文件

http://www.java2s.com/Code/Jar/n/Downloadnoggit05jar.htm

下载

Maven-Repository

然后将其导入项目库。

答案 1 :(得分:0)

您也可以使用solr framework中提供的jar

例如,如果您使用solr4.7.2并且这些jar文件夹中存在solr-4.7.2 \ dist \ solrj-lib \