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<SolrInputDocument> docs = new HashSet<SolrInputDocument>();

    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[rand.nextInt(CATEGORIES.length)]);

      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<FacetField> 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

你可能感兴趣的:(apache)