2017-04-13 3 views
-1

Ich habe die .jar-Dateien in Java-Bibliothek hinzufügen, und versuchen, die solr zu verbinden, ist der folgende Code:solrJ Fehler in HttpSolrServer und SolrServer

import java.net.MalformedURLException; 
import org.apache.solr.client.solrj.SolrServer; 
import org.apache.solr.client.solrj.SolrServerException; 
import org.apache.solr.client.solrj.impl.HttpSolrServer; 
import org.apache.solr.client.solrj.response.QueryResponse; 
import org.apache.solr.common.params.ModifiableSolrParams; 

public class SolrQuery { 
    public static void main(String[] args) throws MalformedURLException, SolrServerException { 
    SolrServer server = new HttpSolrServer("http://localhost:8080/solr"); 
     ModifiableSolrParams params = new ModifiableSolrParams(); 
     params.set("q", "1"); 

      QueryResponse response = server.query(params); 

      System.out.println("response = " + response); 

    } 
} 

Aber wenn ich versuche, das Programm auszuführen, i Fehler:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    SolrServer cannot be resolved to a type 
    HttpSolrServer cannot be resolved to a type 
    The type org.apache.solr.common.params.SolrParams cannot be resolved. It is indirectly referenced from required .class files 

Wie kann ich es lösen?

+0

Sammlungsname die URL hinzufügen oder Sammlungsname festlegen. – vinod

+0

@vinod Ich bin neu in der Solr, kann genauer sein? –

+0

Überprüfen Sie die Antwort. – vinod

Antwort

0

In der Server-URL add collection/core name, wo Sie Dokumente indiziert haben.

SolrServer Server = neuer HttpSolrServer ("http://localhost:8080/solr/collection");

Beispiel Java Code für Ihre Referenz.

* gibt alle in solr indizierten Dokumente an. Ändern Sie * in die Zeichenfolge, die Sie suchen möchten.

import org.apache.solr.client.solrj.SolrQuery; 
import org.apache.solr.client.solrj.SolrServerException; 
import org.apache.solr.client.solrj.impl.HttpSolrServer; 
import org.apache.solr.client.solrj.response.QueryResponse; 
import org.apache.solr.common.SolrDocumentList; 

public class SearchSolr { 

    public static void main(String[] args) throws SolrServerException { 
     HttpSolrServer solr = new HttpSolrServer("http://localhost:8983/solr/collection1"); 
     SolrQuery query = new SolrQuery(); 
     query.setQuery("*"); 
     QueryResponse response = solr.query(query); 
     SolrDocumentList results = response.getResults(); 
     for (int i = 0; i < results.size(); ++i) { 
      System.out.println(results.get(i)); 
     } 
    } 
} 
+0

sry, ich habe gerade Ihren Code ausprobiert und habe denselben Fehler: Ausnahme im Thread "main "java.lang.Error: Ungelöste Kompilierungsproblemen: \t der Konstruktor HttpSolrServer (String) ist nicht definiert \t Verfahren setQuery (String) ist nicht definiert für den Typ SolrQuery \t die Methode query (SolrQuery) für den Typ nicht definiert ist HttpSolrServer \t Der Typ java.util.Map $ Entry kann nicht aufgelöst werden. Es wird indirekt von erforderlichen .class-Dateien referenziert –

+0

Haben Sie solrJ jar-Dateien hinzugefügt? – vinod

+0

Dies sind die Dateien, die ich importiert habe: commons-io-2.5, httpclient-4.4.1, httpcore-4.4.1, httpmime-4.4.1, jcl-über-slf4j-1.7 .7, noggit-0.6 , slf4j-api-1.7.7, stax2-api-3.1.4, woodstox-core-asl-4.4.1 , zoekeeper-3.4.6, solr-solrj-6.5. 0 –