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