Mercurial > hg > LGDataverses
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; + } + + } + +}