yzq 发表于 2015-7-16 14:21:56

solr实例代码 import org.apache.solr.client.solrj.SolrServer

  Hi all,

I used the sample code given below and tried to run with all the relevant
jars. I receive the exception written below.

package test.general;

import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.FacetField;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.SolrParams;



import java.io.IOException;
import java.util.Collection;
import java.util.HashSet;
import java.util.Random;
import java.util.List;

/**
* Connect to Solr and issue a query
*/
public class SolrJExample {

public static final String [] CATEGORIES = {"a", "b", "c", "d"};

public static void main(String[] args) throws IOException,
SolrServerException {
    SolrServer server = new
CommonsHttpSolrServer("http://localhost:8080/solr/update");
    Random rand = new Random();
   

    //Index some documents
    Collection docs = new HashSet();
    for (int i = 0; i < 10; i++) {
      SolrInputDocument doc = new SolrInputDocument();
      doc.addField("link", "http://non-existent-url.foo/" + i + ".html");
      doc.addField("source", "Blog #" + i);
      doc.addField("source-link", "http://non-existent-url.foo/index.html");
      doc.addField("subject", "Subject: " + i);
      doc.addField("title", "Title: " + i);
      doc.addField("content", "This is the " + i + "(th|nd|rd) piece of
content.");
      doc.addField("category", CATEGORIES);
      doc.addField("rating", i);
      System.out.println("Doc[" + i + "] is " + doc);
      docs.add(doc);
    }
   
    UpdateResponse response = server.add(docs);
    System.out.println("Response: " + response);
    //Make the documents available for search
    server.commit();
    //create the query
    SolrQuery query = new SolrQuery("content:piece");
    //indicate we want facets
    query.setFacet(true);
    //indicate what field to facet on
    query.addFacetField("category");
    //we only want facets that have at least one entry
    query.setFacetMinCount(1);
    //run the query
    QueryResponse results = server.query(query);
    System.out.println("Query Results: " + results);
    //print out the facets
    List facets = results.getFacetFields();
    for (FacetField facet : facets) {
      System.out.println("Facet:" + facet);
    }


}

}


The exception :

Exception in thread "main" java.lang.ClassCastException: java.lang.Long
cannot be cast to org.apache.solr.common.util.NamedList
      at
org.apache.solr.common.util.NamedListCodec.unmarshal(NamedListCodec.java:89)
      at
org.apache.solr.client.solrj.impl.BinaryResponseParser.processResponse(Binar
yResponseParser.java:39)
      at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpS
olrServer.java:385)
      at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpS
olrServer.java:183)
      at
org.apache.solr.client.solrj.request.UpdateRequest.process(UpdateRequest.jav
a:217)
      at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:48)
      at test.general.SolrJExample.main(SolrJExample.java:48)


Can someone help me out.

Regards,
Sajith Vimukthi Weerakoon
页: [1]
查看完整版本: solr实例代码 import org.apache.solr.client.solrj.SolrServer