List of usage examples for org.apache.lucene.queryparser.xml DOMUtils getAttributeWithInheritanceOrFail
public static String getAttributeWithInheritanceOrFail(Element e, String name) throws ParserException
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 ww .ja v a 2 s . c om*/ 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 ava 2 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 {// w w w .ja v a2 s . co m 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.ApacheLuceneSolrNearQueryBuilder.java
License:Apache License
public SpanQuery getSpanQuery(Element e) throws ParserException { final String fieldName = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName"); final SpanQuery[] spanQueries = new SpanQuery[] { new SpanTermQuery(new Term(fieldName, "Apache")), new SpanTermQuery(new Term(fieldName, "Lucene")), new SpanTermQuery(new Term(fieldName, "Solr")) }; final int slop = 42; final boolean inOrder = false; return new SpanNearQuery(spanQueries, slop, inOrder); }
From source file:org.apache.solr.search.ChooseOneWordQueryBuilder.java
License:Apache License
public Query implGetQuery(Element e, boolean span) throws ParserException { Term term = null;//from w w w.ja v a2 s .com final String fieldName = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName"); for (Node node = e.getFirstChild(); node != null; node = node.getNextSibling()) { if (node.getNodeType() == Node.ELEMENT_NODE && node.getNodeName().equals("Word")) { final String word = DOMUtils.getNonBlankTextOrFail((Element) node); final Term t = new Term(fieldName, word); if (term == null || term.text().length() < t.text().length()) { term = t; } } } return (span ? new SpanTermQuery(term) : new TermQuery(term)); }
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 {// w ww .j ava 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); } }