0
안녕하세요 메신저가이 코드를 실행하려고하고 내가solrj 오류 :
import org.apache.solr.common.SolrDocument;
import java.util.Map;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrDocument;
import java.util.Map;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
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.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.FacetField;
public class SolrjTest
{
public void query(String q)
{
//CommonsHttpSolrServer server = null;
SolrServer server = null;
try
{
server = new HttpSolrServer("http://localhost:8983/solr/");
//server = new CommonsHttpSolrServer("http://localhost:8080/solr/");
System.out.println("connected");
}
catch(Exception e)
{
System.out.println("not connected");
e.printStackTrace();
}
SolrQuery query = new SolrQuery();
query.setQuery(q);
query.setQueryType("camera");
query.setFacet(true);
query.addFacetField("name");
query.addFacetField("locality4");
query.setFacetMinCount(2);
query.setIncludeScore(true);
try
{
QueryResponse qr = server.query(query);
SolrDocumentList sdl = qr.getResults();
System.out.println("Found: " + sdl.getNumFound());
System.out.println("Start: " + sdl.getStart());
System.out.println("Max Score: " + sdl.getMaxScore());
System.out.println("--------------------------------");
ArrayList<HashMap<String, Object>> hitsOnPage = new ArrayList<HashMap<String, Object>>();
for(SolrDocument d : sdl)
{
HashMap<String, Object> values = new HashMap<String, Object>();
for(Iterator<Map.Entry<String, Object>> i = d.iterator(); i.hasNext(); )
{
Map.Entry<String, Object> e2 = i.next();
values.put(e2.getKey(), e2.getValue());
}
hitsOnPage.add(values);
System.out.println(values.get("displayname") + " (" + values.get("displayphone") + ")");
}
List<FacetField> facets = qr.getFacetFields();
for(FacetField facet : facets)
{
List<FacetField.Count> facetEntries = facet.getValues();
for(FacetField.Count fcount : facetEntries)
{
System.out.println(fcount.getName() + ": " + fcount.getCount());
}
}
}
catch (SolrServerException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
SolrjTest solrj = new SolrjTest();
solrj.query(args[0]);
}
}
메신저이 오류
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at SolrjTest.main(SolrjTest.java:98)
을 가진 solrj하는 새로운 메신저 wrong..sorry 무엇인지 알아낼 수있는 범위의 밖으로 배열
그것은에서 가리키는 :
solrj.query(args[0]);
는 나 또한 내가 사를 실행할 때마다이 출력을 가진 메신저 전에 추가 질문 원인이 solrj
{time=218.0,sub1={time=125.0,sub1.1={time=31.0}}}
에서 mple 프로그램이 의미 및 범위의 밖으로 배열에 대한 오류가 무엇인지 말해 줄 수? 미리 감사드립니다. 솔직히 많은 것을 알고 있습니다.
이렇게하면 args [0]을 "abc"또는 다른 문자열로 대체 할 수 있습니까? –
네가 할 수는 있지만, 무엇을 설정해도'query' 메소드로 전달된다는 것을 명심하십시오. – Abubakkar
안녕 내 프로그램이 이제 실행됩니다, 나는 또한 commons-logging jar 파일을 추가하고 조언을 따랐습니다. –