diff src/main/java/edu/harvard/iq/dataverse/SolrField.java @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/edu/harvard/iq/dataverse/SolrField.java	Tue Sep 08 17:00:21 2015 +0200
@@ -0,0 +1,80 @@
+package edu.harvard.iq.dataverse;
+
+public class SolrField {
+
+    private String nameSearchable;
+    private String nameFacetable;
+    private SolrType solrType;
+    private boolean allowedToBeMultivalued;
+    private boolean facetable;
+
+    public SolrField(String name, SolrType solrType, boolean allowedToBeMultivalued, boolean facetable) {
+        this.nameSearchable = name;
+        this.solrType = solrType;
+        this.allowedToBeMultivalued = allowedToBeMultivalued;
+        this.facetable = facetable;
+        if (allowedToBeMultivalued) {
+            /**
+             * @todo Should we expose this Solr-specific "_ss" fieldname here?
+             * Instead should the field end with "FacetMultiple"?
+             */
+            this.nameFacetable = name + "_ss";
+        } else {
+            /**
+             * @todo Should we expose this Solr-specific "_s" fieldname here?
+             * Instead should the field end with "FacetSingle"?
+             */
+            this.nameFacetable = name + "_s";
+        }
+    }
+
+    public String getNameSearchable() {
+        return nameSearchable;
+    }
+
+    public String getNameFacetable() {
+        return nameFacetable;
+    }
+
+    public SolrType getSolrType() {
+        return solrType;
+    }
+
+    public Boolean isAllowedToBeMultivalued() {
+        return allowedToBeMultivalued;
+    }
+
+    public void setAllowedToBeMultivalued(boolean allowedToBeMultivalued) {
+        this.allowedToBeMultivalued = allowedToBeMultivalued;
+    }
+
+    public boolean isFacetable() {
+        return facetable;
+    }
+
+    public enum SolrType {
+
+        /**
+         * @todo: make this configurable from text_en to text_general or
+         * non-English languages? We changed it to text_en to improve English
+         * language searching in https://github.com/IQSS/dataverse/issues/444
+         *
+         * We want to get away from always using "text_en" (especially to
+         * support range queries) in
+         * https://github.com/IQSS/dataverse/issues/370
+         */
+        STRING("string"), TEXT_EN("text_en"), INTEGER("int"), LONG("long"), DATE("text_en"), EMAIL("text_en");
+
+        private String type;
+
+        private SolrType(String string) {
+            type = string;
+        }
+
+        public String getType() {
+            return type;
+        }
+
+    }
+
+}