Example usage for org.apache.lucene.util QueryBuilder createPhraseQuery

List of usage examples for org.apache.lucene.util QueryBuilder createPhraseQuery

Introduction

In this page you can find the example usage for org.apache.lucene.util QueryBuilder createPhraseQuery.

Prototype

public Query createPhraseQuery(String field, String queryText, int phraseSlop) 

Source Link

Document

Creates a phrase query from the query text.

Usage

From source file:com.stratio.cassandra.lucene.search.condition.MatchCondition.java

License:Apache License

/** {@inheritDoc} */
@Override//from   ww  w. j  av  a 2s.co  m
public Query query(Schema schema) {
    SingleColumnMapper<?> columnMapper = getMapper(schema, field);
    Class<?> clazz = columnMapper.baseClass();
    Query query;
    if (clazz == String.class) {
        String value = (String) columnMapper.base(field, this.value);
        Analyzer analyzer = schema.getAnalyzer();
        QueryBuilder queryBuilder = new QueryBuilder(analyzer);
        query = queryBuilder.createPhraseQuery(field, value, 0);
        if (query == null)
            query = new BooleanQuery();
    } else if (clazz == Integer.class) {
        Integer value = (Integer) columnMapper.base(field, this.value);
        query = NumericRangeQuery.newIntRange(field, value, value, true, true);
    } else if (clazz == Long.class) {
        Long value = (Long) columnMapper.base(field, this.value);
        query = NumericRangeQuery.newLongRange(field, value, value, true, true);
    } else if (clazz == Float.class) {
        Float value = (Float) columnMapper.base(field, this.value);
        query = NumericRangeQuery.newFloatRange(field, value, value, true, true);
    } else if (clazz == Double.class) {
        Double value = (Double) columnMapper.base(field, this.value);
        query = NumericRangeQuery.newDoubleRange(field, value, value, true, true);
    } else {
        String message = String.format("Match queries are not supported by %s mapper", clazz.getSimpleName());
        throw new UnsupportedOperationException(message);
    }
    query.setBoost(boost);
    return query;
}

From source file:com.stratio.cassandra.lucene.search.condition.PhraseCondition.java

License:Apache License

/** {@inheritDoc} */
@Override//from   w  w w.j a v a 2  s.  com
public Query query(Schema schema) {
    SingleColumnMapper<?> columnMapper = getMapper(schema, field);
    Class<?> clazz = columnMapper.baseClass();
    if (clazz == String.class) {
        Analyzer analyzer = schema.getAnalyzer();
        QueryBuilder queryBuilder = new QueryBuilder(analyzer);
        Query query = queryBuilder.createPhraseQuery(field, value, slop);
        if (query == null)
            query = new BooleanQuery();
        query.setBoost(boost);
        return query;
    } else {
        String message = String.format("Unsupported query %s for mapper %s", this, columnMapper);
        throw new UnsupportedOperationException(message);
    }
}