diff --git a/src/main/java/au/org/ala/biocache/dao/SolrIndexDAOImpl.java b/src/main/java/au/org/ala/biocache/dao/SolrIndexDAOImpl.java index 1a32c580e..bbe3a9f24 100644 --- a/src/main/java/au/org/ala/biocache/dao/SolrIndexDAOImpl.java +++ b/src/main/java/au/org/ala/biocache/dao/SolrIndexDAOImpl.java @@ -91,6 +91,12 @@ public class SolrIndexDAOImpl implements IndexDAO { "lastAssertionDate" ); + /* + * The field types to exclude from the index/fields JSON + */ + @Value("${index.fields.skipFieldTypes:location,geohash,quad,packedQuad}") + private final List skipFieldTypes = new ArrayList<>(); + /* * This structure holds field properties * Values in the list are: @@ -671,10 +677,11 @@ private IndexFieldDTO formatIndexField(String fieldName, String fieldType, Strin f.setName(fieldName); - if (fieldType != null) { - f.setDataType(fieldType); + if ((fieldType != null && skipFieldTypes.contains(fieldType)) || fieldName.startsWith("_")) { + // Skip fields we don't want to expose + return null; } else { - f.setDataType("string"); + f.setDataType(Objects.requireNonNullElse(fieldType, "string")); } if (distinctCount != null) {