package org.carrot2.elasticsearch;
import org.carrot2.elasticsearch.ClusteringAction.ClusteringActionRequest;
import java.util.HashMap;
import java.util.Locale;
/**
* Logical fields of a document to be clustered.
*
* @see ClusteringActionRequest#addFieldMappingSpec(String, LogicalField)
* @see ClusteringActionRequest#addFieldMapping(String, LogicalField)
* @see ClusteringActionRequest#addHighlightedFieldMapping(String, LogicalField)
* @see ClusteringActionRequest#addSourceFieldMapping(String, LogicalField)
*/
public enum LogicalField {
URL,
TITLE,
CONTENT,
LANGUAGE;
static final LogicalField [] cachedByOrdinal = values();
static LogicalField fromOrdinal(int ordinal) {
return cachedByOrdinal[ordinal];
}
static final HashMap<String,LogicalField> aliases;
static {
aliases = new HashMap<>();
for (LogicalField v : LogicalField.values()) {
aliases.put(v.name(), v);
aliases.put(v.name().toLowerCase(Locale.ROOT), v);
}
}
/**
* Same as {@link LogicalField#valueOf(String)} but does not throw
* an exception on invalid values (returns null).
*/
static LogicalField valueOfCaseInsensitive(String enumValue) {
return aliases.get(enumValue);
}
}