Search in sources :

Example 6 with Cmp

use of org.janusgraph.core.attribute.Cmp in project janusgraph by JanusGraph.

the class ElasticSearchIndex method supports.

@Override
public boolean supports(KeyInformation information, JanusGraphPredicate janusgraphPredicate) {
    final Class<?> dataType = information.getDataType();
    final Mapping mapping = Mapping.getMapping(information);
    if (mapping != Mapping.DEFAULT && !AttributeUtils.isString(dataType) && !(mapping == Mapping.PREFIX_TREE && AttributeUtils.isGeo(dataType)))
        return false;
    if (Number.class.isAssignableFrom(dataType)) {
        return janusgraphPredicate instanceof Cmp;
    } else if (dataType == Geoshape.class) {
        switch(mapping) {
            case DEFAULT:
                return janusgraphPredicate instanceof Geo && janusgraphPredicate != Geo.CONTAINS;
            case PREFIX_TREE:
                return janusgraphPredicate instanceof Geo;
        }
    } else if (AttributeUtils.isString(dataType)) {
        switch(mapping) {
            case DEFAULT:
            case TEXT:
                return janusgraphPredicate == Text.CONTAINS || janusgraphPredicate == Text.NOT_CONTAINS || janusgraphPredicate == Text.CONTAINS_FUZZY || janusgraphPredicate == Text.NOT_CONTAINS_FUZZY || janusgraphPredicate == Text.CONTAINS_PREFIX || janusgraphPredicate == Text.NOT_CONTAINS_PREFIX || janusgraphPredicate == Text.CONTAINS_REGEX || janusgraphPredicate == Text.NOT_CONTAINS_REGEX || janusgraphPredicate == Text.CONTAINS_PHRASE || janusgraphPredicate == Text.NOT_CONTAINS_PHRASE;
            case STRING:
                return janusgraphPredicate instanceof Cmp || janusgraphPredicate == Text.REGEX || janusgraphPredicate == Text.NOT_REGEX || janusgraphPredicate == Text.PREFIX || janusgraphPredicate == Text.NOT_PREFIX || janusgraphPredicate == Text.FUZZY || janusgraphPredicate == Text.NOT_FUZZY;
            case TEXTSTRING:
                return janusgraphPredicate instanceof Text || janusgraphPredicate instanceof Cmp;
        }
    } else if (dataType == Date.class || dataType == Instant.class) {
        return janusgraphPredicate instanceof Cmp;
    } else if (dataType == Boolean.class) {
        return janusgraphPredicate == Cmp.EQUAL || janusgraphPredicate == Cmp.NOT_EQUAL;
    } else if (dataType == UUID.class) {
        return janusgraphPredicate == Cmp.EQUAL || janusgraphPredicate == Cmp.NOT_EQUAL;
    }
    return false;
}
Also used : Geo(org.janusgraph.core.attribute.Geo) Cmp(org.janusgraph.core.attribute.Cmp) Geoshape(org.janusgraph.core.attribute.Geoshape) Mapping(org.janusgraph.core.schema.Mapping) IndexMapping(org.janusgraph.diskstorage.es.mapping.IndexMapping) Text(org.janusgraph.core.attribute.Text) UUID(java.util.UUID)

Aggregations

UUID (java.util.UUID)6 Cmp (org.janusgraph.core.attribute.Cmp)6 Geoshape (org.janusgraph.core.attribute.Geoshape)6 Mapping (org.janusgraph.core.schema.Mapping)6 Geo (org.janusgraph.core.attribute.Geo)4 Instant (java.time.Instant)3 Date (java.util.Date)3 Text (org.janusgraph.core.attribute.Text)3 JanusGraphPredicate (org.janusgraph.graphdb.query.JanusGraphPredicate)3 And (org.janusgraph.graphdb.query.condition.And)3 Condition (org.janusgraph.graphdb.query.condition.Condition)3 Not (org.janusgraph.graphdb.query.condition.Not)3 Or (org.janusgraph.graphdb.query.condition.Or)3 PredicateCondition (org.janusgraph.graphdb.query.condition.PredicateCondition)3 KeyInformation (org.janusgraph.diskstorage.indexing.KeyInformation)2 Preconditions (com.google.common.base.Preconditions)1 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 Iterators (com.google.common.collect.Iterators)1 LinkedListMultimap (com.google.common.collect.LinkedListMultimap)1