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