package lux.query.parser; import org.apache.lucene.queryparser.xml.DOMUtils; import org.apache.lucene.queryparser.xml.ParserException; import org.apache.lucene.queryparser.xml.QueryBuilder; import org.apache.lucene.search.TermRangeQuery; import org.w3c.dom.Element; public class TermRangeQueryBuilder implements QueryBuilder { @Override public TermRangeQuery getQuery(Element e) throws ParserException { String fieldName = DOMUtils.getAttributeWithInheritance(e, "fieldName"); String lowerTerm = e.hasAttribute ("lowerTerm") ? e.getAttribute("lowerTerm") : null; String upperTerm = e.hasAttribute("upperTerm") ? e.getAttribute("upperTerm") : null; boolean includeLower = DOMUtils.getAttribute(e, "includeLower", true); boolean includeUpper = DOMUtils.getAttribute(e, "includeUpper", true); return TermRangeQuery.newStringRange(fieldName, lowerTerm, upperTerm, includeLower, includeUpper); } }