Sto cercando di interrogare solr tramite solrj in Eclipse. Ho provato l'ultimo solrj wiki esempio:Richiesta di Solr via Solrj: Nozioni di base
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.params.ModifiableSolrParams;
import java.net.MalformedURLException;
public class SolrQuery2 {
public static void main(String[] args) throws MalformedURLException, SolrServerException {
SolrServer solr = new CommonsHttpSolrServer("http://localhost:8080/solr");
// http://localhost:8080/solr/select/?q=outside
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("qt", "/select");
params.set("q", "outside");
QueryResponse response = solr.query(params);
System.out.println("response = " + response);
}
}
Tuttavia, non posso ottenere oltre questo errore, non importa quello che faccio:
Exception in thread "main" java.lang.NoSuchMethodError:
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
Avanti, ho provato l'esempio libro di cucina:
import java.util.Iterator;
import org.apache.solr.client.solrj.SolrQuery; //Error: The import org.apache.solr.client.solrj.SolrQuery conflicts with a type defined in the same file
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
public class SolrQuery {
public static void main(String[] args) throws Exception {
CommonsHttpSolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr");
server.setParser(new XMLResponseParser());
SolrQuery query = new SolrQuery();
query.setQuery("document"); //Error: The method setQuery(String) is undefined for the type SolrQuery
query.setStart(0); //Error: The method setStart(int) is undefined for the type SolrQuery
query.setRows(10); //Error: The method setRows(int) is undefined for the type SolrQuery
QueryResponse response = server.query(query); //Error: The method query(SolrParams) in the type SolrServer is not applicable for the arguments (SolrQuery)
SolrDocumentList documents = response.getResults();
Iterator<SolrDocument> itr = documents.iterator();
System.out.println("DOCUMENTS");
while(itr.hasNext()){
SolrDocument doc = itr.next();
System.out.println(doc.getFieldValue("id")+":"+doc.getFieldValue("content"));
}
}
}
Tuttavia, quell'esempio potrebbe essere datato per l'API corrente poiché non posso nemmeno importare la libreria SolrQuery.
Qualcuno ha un esempio di piastra veloce che funziona?
Grazie in anticipo.
PS. Sto facendo funzionare windows7 con tomcat7 e solr 3.5. Tutto quello che sto cercando di fare a questo punto è una query di base e ottenere i risultati in una sorta di elenco, array, qualunque sia. Quando interrogo: http://localhost:8080/solr/select/?q=outside
in firefox, i risultati tornano perfettamente.
Ho usato esattamente l'esempio Java sopra, ma mi è stato richiesto di avere i seguenti file jar nel mio percorso di compilazione. commons-logging-1.1.1.jar, httpclient-4.2.1.jar, httpcore-4.2.1.jar, httpmime-4.2.1.jar, slf4j-api-1.6.4.jar, slf4j-simple- 1.6.4.jar, solr-solrj-3.6.0.jar – Adam
+1 questo mi ha aiutato anche io. – Aaron