Author: jmssiera
Date: Tue Dec 14 16:31:49 2021
New Revision: 1895959

URL: http://svn.apache.org/viewvc?rev=1895959&view=rev
Log:
Fix CONNECTORS-1687

Modified:
    
manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/solr/SolrIngesterConnector.java

Modified: 
manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/solr/SolrIngesterConnector.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/solr/SolrIngesterConnector.java?rev=1895959&r1=1895958&r2=1895959&view=diff
==============================================================================
--- 
manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/solr/SolrIngesterConnector.java
 (original)
+++ 
manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/solr/SolrIngesterConnector.java
 Tue Dec 14 16:31:49 2021
@@ -643,9 +643,36 @@ public class SolrIngesterConnector exten
                   if (listFieldValues != null) {
 
                     // TODO
-                    // For now only supports String fields (not int, long, 
date etc...)
-                    final String[] tablistFieldValues = 
listFieldValues.toArray(new String[0]);
-                    doc.addField(entry.getValue(), tablistFieldValues);
+                    // For now supports String, int, long, date fields 
+                    if (listFieldValues.get(0) instanceof String) {
+                      final String[] tablistFieldValues = 
listFieldValues.toArray(new String[0]);
+                      doc.addField(entry.getValue(), tablistFieldValues);
+                    }
+                    else if (listFieldValues.get(0) instanceof Long) {
+                      final Long[] tablistFieldValues = 
listFieldValues.toArray(new Long[0]);
+                      String[] string_list = new 
String[tablistFieldValues.length];
+
+                      for(int i = 0; i < tablistFieldValues.length; i++){
+                        string_list[i] = String.valueOf(tablistFieldValues[i]);
+                      }
+                      doc.addField(entry.getValue(), string_list);
+                    }
+                    else if (listFieldValues.get(0) instanceof Integer) {
+                      final Integer[] tablistFieldValues = 
listFieldValues.toArray(new Integer[0]);
+                      String[] string_list = new 
String[tablistFieldValues.length];
+
+                      for(int i = 0; i < tablistFieldValues.length; i++){
+                        string_list[i] = String.valueOf(tablistFieldValues[i]);
+                      }
+                      doc.addField(entry.getValue(), string_list);
+                    }
+                    else if (listFieldValues.get(0) instanceof Date) {
+                      final Date[] tablistFieldValues = 
listFieldValues.toArray(new Date[0]);
+                      doc.addField(entry.getValue(), tablistFieldValues);
+                    }
+                    else {
+                        Logging.connectors.warn("SolrIngester: the type of the 
field "+entry.getKey() + " is not recognized");
+                    }
 
                   }
                 }


Reply via email to