view src/main/java/edu/harvard/iq/dataverse/SolrField.java @ 14:be7787c36e58 default tip

new: nofity LGSercies for deleted files
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Mon, 02 Nov 2015 16:41:23 +0100
parents a50cf11e5178
children
line wrap: on
line source

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;
        }

    }

}