List of usage examples for org.apache.lucene.queryparser.xml DOMUtils getAttribute
public static boolean getAttribute(Element element, String attributeName, boolean deflt)
From source file:com.mathworks.xzheng.tools.XmlQueryParser.AgoFilterBuilder.java
License:Apache License
public Filter getFilter(Element element) throws ParserException { String fieldName = DOMUtils.getAttributeWithInheritanceOrFail(element, // A "fieldName"); // A String timeUnit = DOMUtils.getAttribute(element, "timeUnit", "days"); // A Integer calUnit = timeUnits.get(timeUnit); // A if (calUnit == null) { // A throw new ParserException("Illegal time unit:" // A + timeUnit + " - must be days, months or years"); // A } // A/*from w w w.j a v a 2 s.c o m*/ int agoStart = DOMUtils.getAttribute(element, "from", 0); // A int agoEnd = DOMUtils.getAttribute(element, "to", 0); // A if (agoStart < agoEnd) { int oldAgoStart = agoStart; agoStart = agoEnd; agoEnd = oldAgoStart; } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); // B Calendar start = Calendar.getInstance(); // B start.add(calUnit, agoStart * -1); // B Calendar end = Calendar.getInstance(); // B end.add(calUnit, agoEnd * -1); // B return NumericRangeFilter.newIntRange( // C fieldName, // C Integer.valueOf(sdf.format(start.getTime())), // C Integer.valueOf(sdf.format(end.getTime())), // C true, true); // C }
From source file:io.datalayer.lucene.filter.TimeAgoFilterBuilder.java
License:Apache License
@Override public Filter getFilter(Element element) throws ParserException { String fieldName = DOMUtils.getAttributeWithInheritanceOrFail(element, "fieldName"); String timeUnit = DOMUtils.getAttribute(element, "timeUnit", "days"); Integer calUnit = timeUnits.get(timeUnit); if (calUnit == null) { throw new ParserException("Illegal time unit:" + timeUnit + " - must be days, months or years"); }// w ww. j ava2 s .c o m int agoStart = DOMUtils.getAttribute(element, "from", 0); int agoEnd = DOMUtils.getAttribute(element, "to", 0); if (agoStart < agoEnd) { int oldAgoStart = agoStart; agoStart = agoEnd; agoEnd = oldAgoStart; } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Calendar start = Calendar.getInstance(); start.add(calUnit, agoStart * -1); Calendar end = Calendar.getInstance(); end.add(calUnit, agoEnd * -1); return NumericRangeFilter.newIntRange(fieldName, Integer.valueOf(sdf.format(start.getTime())), Integer.valueOf(sdf.format(end.getTime())), true, true); }
From source file:lux.query.parser.NumericRangeQueryBuilder.java
License:Apache License
@Override public Query getQuery(Element e) throws ParserException { String field = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName"); String lowerTerm = DOMUtils.getAttribute(e, "lowerTerm", null); String upperTerm = DOMUtils.getAttribute(e, "upperTerm", null); boolean lowerInclusive = DOMUtils.getAttribute(e, "includeLower", true); boolean upperInclusive = DOMUtils.getAttribute(e, "includeUpper", true); int precisionStep = DOMUtils.getAttribute(e, "precisionStep", NumericUtils.PRECISION_STEP_DEFAULT); String type = DOMUtils.getAttribute(e, "type", "int"); try {//from ww w . j a v a2s . c om Query filter; if (type.equalsIgnoreCase("int")) { filter = NumericRangeQuery.newIntRange(field, precisionStep, lowerTerm == null ? null : Integer.valueOf(lowerTerm), upperTerm == null ? null : Integer.valueOf(upperTerm), lowerInclusive, upperInclusive); } else if (type.equalsIgnoreCase("long")) { filter = NumericRangeQuery.newLongRange(field, precisionStep, lowerTerm == null ? null : Long.valueOf(lowerTerm), upperTerm == null ? null : Long.valueOf(upperTerm), lowerInclusive, upperInclusive); } else if (type.equalsIgnoreCase("double")) { filter = NumericRangeQuery.newDoubleRange(field, precisionStep, lowerTerm == null ? null : Double.valueOf(lowerTerm), upperTerm == null ? null : Double.valueOf(upperTerm), lowerInclusive, upperInclusive); } else if (type.equalsIgnoreCase("float")) { filter = NumericRangeQuery.newFloatRange(field, precisionStep, lowerTerm == null ? null : Float.valueOf(lowerTerm), upperTerm == null ? null : Float.valueOf(upperTerm), lowerInclusive, upperInclusive); } else { throw new ParserException("type attribute must be one of: [long, int, double, float]"); } return filter; } catch (NumberFormatException nfe) { throw new ParserException("Could not parse lowerTerm or upperTerm into a number", nfe); } }
From source file:org.apache.solr.search.LegacyNumericRangeQueryBuilder.java
License:Apache License
@Override public Query getQuery(Element e) throws ParserException { String field = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName"); final String lowerTerm = DOMUtils.getAttribute(e, "lowerTerm", null); final String upperTerm = DOMUtils.getAttribute(e, "upperTerm", null); boolean lowerInclusive = DOMUtils.getAttribute(e, "includeLower", true); boolean upperInclusive = DOMUtils.getAttribute(e, "includeUpper", true); int precisionStep = DOMUtils.getAttribute(e, "precisionStep", LegacyNumericUtils.PRECISION_STEP_DEFAULT); String type = DOMUtils.getAttribute(e, "type", "int"); try {//ww w.ja v a 2 s . c o m Query filter; if (type.equalsIgnoreCase("int")) { filter = LegacyNumericRangeQuery.newIntRange(field, precisionStep, (lowerTerm == null ? null : Integer.valueOf(lowerTerm)), (upperTerm == null ? null : Integer.valueOf(upperTerm)), lowerInclusive, upperInclusive); } else if (type.equalsIgnoreCase("long")) { filter = LegacyNumericRangeQuery.newLongRange(field, precisionStep, (lowerTerm == null ? null : Long.valueOf(lowerTerm)), (upperTerm == null ? null : Long.valueOf(upperTerm)), lowerInclusive, upperInclusive); } else if (type.equalsIgnoreCase("double")) { filter = LegacyNumericRangeQuery.newDoubleRange(field, precisionStep, (lowerTerm == null ? null : Double.valueOf(lowerTerm)), (upperTerm == null ? null : Double.valueOf(upperTerm)), lowerInclusive, upperInclusive); } else if (type.equalsIgnoreCase("float")) { filter = LegacyNumericRangeQuery.newFloatRange(field, precisionStep, (lowerTerm == null ? null : Float.valueOf(lowerTerm)), (upperTerm == null ? null : Float.valueOf(upperTerm)), lowerInclusive, upperInclusive); } else { throw new ParserException("type attribute must be one of: [long, int, double, float]"); } return filter; } catch (NumberFormatException nfe) { throw new ParserException("Could not parse lowerTerm or upperTerm into a number", nfe); } }