Я получаю следующее исключение при попытке запросить мою отдельную коллекцию SOLR 7.5.0.Я не уверен, где проблема или как идти об устранении неполадок.В настоящее время я использую зависимости solr 7.5.0 в своем проекте maven, и я пытался использовать 7.6.0 и 7.4.0, и они выдают то же исключение.Я ищу другие вещи, чтобы попытаться выяснить, где проблема и как обойти ее.
Строка, которая вызывает исключение, это
QueryResponse resp = httpSolrClient.query(query, METHOD.GET );
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to org.apache.solr.common.SolrDocumentList
at org.apache.solr.client.solrj.response.QueryResponse.setResponse(QueryResponse.java:126)
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:194)
at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:974)
at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:990)
at com.leidos.textanalysis.solr.QuerySolr.main(QuerySolr.java:28)
Ниже приведен код, который вызывает его, и никакие изменения не привели к какому-либо изменению результатов.
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
NoOpResponseParser responseParser = new NoOpResponseParser();
responseParser.setWriterType("xml");
HttpSolrClient.Builder builder = new HttpSolrClient.Builder();
builder.withBaseSolrUrl("http://host:8983/solr/collection");
RequestWriter writer = new RequestWriter();
HttpSolrClient httpSolrClient = builder. build();
httpSolrClient.setRequestWriter(writer);
httpSolrClient.setParser(responseParser);
//message score
SolrQuery query =new SolrQuery("*:*");
QueryResponse resp = httpSolrClient.query(query, METHOD.GET ); //Exception thrown here
SolrDocumentList theList = resp.getResults();
SolrDocument test = theList.get(0);
System.out.println(test.toString());
}
Глядя на исходный код QueryResponse в solr, мы можем увидеть проблемуздесь, где он приводит к SolrDocumentList
.Я не могу найти способ обойти это или исправить это.Я ищу вещи, чтобы попробовать и варианты для устранения проблем больше.Спасибо.
public void setResponse( NamedList<Object> res ) {
super.setResponse( res );
// Look for known things
for( int i=0; i<res.size(); i++ ) {
String n = res.getName( i );
if( "responseHeader".equals( n ) ) {
_header = (NamedList<Object>) res.getVal( i );
}
else if( "response".equals( n ) ) {
_results = (SolrDocumentList) res.getVal( i ); //Exception thrown Here
}
else if( "sort_values".equals( n ) ) {
_sortvalues = (NamedList<ArrayList>) res.getVal( i );
}
else if( "facet_counts".equals( n ) ) {
_facetInfo = (NamedList<Object>) res.getVal( i );
// extractFacetInfo inspects _results, so defer calling it
// in case it hasn't been populated yet.
}
else if( "debug".equals( n ) ) {
_debugInfo = (NamedList<Object>) res.getVal( i );
extractDebugInfo( _debugInfo );
}
else if( "grouped".equals( n ) ) {
_groupedInfo = (NamedList<Object>) res.getVal( i );
extractGroupedInfo( _groupedInfo );
}
else if("expanded".equals(n)) {
NamedList map = (NamedList) res.getVal(i);
_expandedResults = map.asMap(1);
}
else if( "highlighting".equals( n ) ) {
_highlightingInfo = (NamedList<Object>) res.getVal( i );
extractHighlightingInfo( _highlightingInfo );
}
else if ( "spellcheck".equals( n ) ) {
_spellInfo = (NamedList<Object>) res.getVal( i );
extractSpellCheckInfo( _spellInfo );
}
else if ("clusters".equals(n)) {
_clusterInfo = (ArrayList<NamedList<Object>>) res.getVal(i);
extractClusteringInfo(_clusterInfo);
}
else if ( "suggest".equals( n ) ) {
_suggestInfo = (Map<String,NamedList<Object>>) res.getVal( i );
extractSuggesterInfo(_suggestInfo);
}
else if ( "stats".equals( n ) ) {
_statsInfo = (NamedList<Object>) res.getVal( i );
extractStatsInfo( _statsInfo );
}
else if ( "terms".equals( n ) ) {
_termsInfo = (NamedList<NamedList<Object>>) res.getVal( i );
extractTermsInfo( _termsInfo );
}
else if ( "moreLikeThis".equals( n ) ) {
_moreLikeThisInfo = (NamedList<SolrDocumentList>) res.getVal( i );
}
else if ( CursorMarkParams.CURSOR_MARK_NEXT.equals( n ) ) {
_cursorMarkNext = (String) res.getVal( i );
}
}
if(_facetInfo != null) extractFacetInfo( _facetInfo );
}