Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.4, 3.6, 4.2, 7.4
Description
When using FieldAnalysisRequest.java to analysis a field, a ClassCastExcpetion is thrown if the schema defines the filter org.apache.solr.analysis.HTMLStripCharFilter. The exception is:
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List
at org.apache.solr.client.solrj.response.AnalysisResponseBase.buildPhases(AnalysisResponseBase.java:69)
at org.apache.solr.client.solrj.response.FieldAnalysisResponse.setResponse(FieldAnalysisResponse.java:66)
at org.apache.solr.client.solrj.request.FieldAnalysisRequest.process(FieldAnalysisRequest.java:107)
My schema definition is:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.HTMLStripCharFilterFactory" />
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.StandardFilterFactory" />
<filter class="solr.TrimFilterFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
The response is part is:
<lst name="query">
<str name="org.apache.solr.analysis.HTMLStripCharFilter">testing analysis</str>
<arr name="org.apache.lucene.analysis.standard.StandardTokenizer">
<lst>...
A simplistic fix would be to test if the Entry value is an instance of List.