You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by jm...@apache.org on 2021/12/14 16:31:49 UTC

svn commit: r1895959 - /manifoldcf/trunk/connectors/solr/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/solr/SolrIngesterConnector.java

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");
+                    }
 
                   }
                 }