Process Solr Suggester response (suggest) in ResponseParser
diff --git a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/SolrConstants.java b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/SolrConstants.java
index d831448..670740a 100755
--- a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/SolrConstants.java
+++ b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/SolrConstants.java
@@ -251,6 +251,8 @@
public static final String STDDEV = "stddev";
+ public static final String SUGGEST = "suggest";
+
public static final String SUGGESTION = "suggestion";
public static final String SUGGESTIONS = "suggestions";
diff --git a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/search/ResponseParser.java b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/search/ResponseParser.java
index 19dbeee..722280d 100755
--- a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/search/ResponseParser.java
+++ b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/search/ResponseParser.java
@@ -108,6 +108,7 @@
parseCursorMark(response);
parseDebug(response);
parseStats(response);
+ parseSuggest(response);
}
void parseResults(final QueryResponse response) {
@@ -499,4 +500,23 @@
stats.put(SolrConstants.STDDEV, fieldStatsInfo.getStddev());
}
+ @SuppressWarnings("unchecked")
+ void parseSuggest(final QueryResponse response) {
+ final Object obj = response.getResponse().get(SolrConstants.SUGGEST);
+ if (obj != null) {
+ final AnyMap suggest = getResponseMap().getMap(SolrConstants.SUGGEST, true);
+ if (obj instanceof Map<?, ?>) {
+ final Map<Object, Object> dictionaries = (Map<Object, Object>) obj;
+ for (final Entry<Object, Object> dictionary : dictionaries.entrySet()) {
+ final String name = (String) dictionary.getKey();
+ final Object list = dictionary.getValue();
+ if (list instanceof NamedList<?>) {
+ final AnyMap target = suggest.getMap(name, true);
+ SolrUtils.parseNamedList((NamedList<?>) list, target);
+ }
+ }
+ }
+ }
+ }
+
}