List of usage examples for org.apache.lucene.util QueryBuilder createPhraseQuery
public Query createPhraseQuery(String field, String queryText, int phraseSlop)
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); } }