List of usage examples for org.apache.lucene.search TermRangeQuery TermRangeQuery
public TermRangeQuery(String field, BytesRef lowerTerm, BytesRef upperTerm, boolean includeLower, boolean includeUpper)
lowerTerm but less/equal than upperTerm. From source file:SearcherTest.java
/** * TermRangeQuery /*from w w w .j a va2 s. c o m*/ * TermRangeQuery??? * ?ASC??ASC? * ?ASC?? * ASC??TermRangeQuery * ?NumericRangeQuery * ????? * * @throws Exception */ @Test public void testTermRangeQuery() throws Exception { String searchField = "contents"; String q = "1000001----1000002"; String lowerTermString = "1000001"; String upperTermString = "1000003"; /** * field * lowerterm - *upperterm -? *includelower -lowerterm *includeupper -upperterm *https://yq.aliyun.com/articles/45353 */ Query query = new TermRangeQuery(searchField, new BytesRef(lowerTermString), new BytesRef(upperTermString), true, true); TopDocs hits = is.search(query, 10); System.out.println("? '" + q + "'" + hits.totalHits + ""); for (ScoreDoc scoreDoc : hits.scoreDocs) { Document doc = is.doc(scoreDoc.doc); System.out.println(doc.get("fullPath")); } }
From source file:aos.lucene.search.advanced.IndexSearcherTest.java
License:Apache License
public void testMulti() throws Exception { IndexSearcher searcher = new IndexSearcher(searchers); TermRangeQuery query = new TermRangeQuery("animal", // "h", // "t", // true, true);// #3 TopDocs hits = searcher.search(query, 10); assertEquals("tarantula not included", 12, hits.totalHits); }
From source file:aos.lucene.search.msc.TermRangeQueryTest.java
License:Apache License
public void testTermRangeQuery() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(dir); TermRangeQuery query = new TermRangeQuery("title2", "d", "j", true, true); TopDocs matches = searcher.search(query, 100); /*/*w w w .j a v a2 s .c om*/ for(int i=0;i<matches.totalHits;i++) { LOGGER.info("match " + i + ": " + searcher.doc(matches.scoreDocs[i].doc).get("title2")); } */ assertEquals(3, matches.totalHits); searcher.close(); dir.close(); }
From source file:cc.pp.analyzer.ik.query.IKQueryExpressionParser.java
License:Apache License
/** * TermRangeQuery//from www . jav a 2 s .co m * @param elements * @return */ private TermRangeQuery toTermRangeQuery(Element fieldNameEle, LinkedList<Element> elements) { boolean includeFirst = false; boolean includeLast = false; String firstValue = null; String lastValue = null; //?[{ Element first = elements.getFirst(); if ('[' == first.type) { includeFirst = true; } else if ('{' == first.type) { includeFirst = false; } else { throw new IllegalStateException("?"); } //??]} Element last = elements.getLast(); if (']' == last.type) { includeLast = true; } else if ('}' == last.type) { includeLast = false; } else { throw new IllegalStateException("?, RangeQuery??"); } if (elements.size() < 4 || elements.size() > 5) { throw new IllegalStateException("?, RangeQuery "); } // Element e2 = elements.get(1); if ('\'' == e2.type) { firstValue = e2.toString(); // Element e3 = elements.get(2); if (',' != e3.type) { throw new IllegalStateException("?, RangeQuery?"); } // Element e4 = elements.get(3); if ('\'' == e4.type) { lastValue = e4.toString(); } else if (e4 != last) { throw new IllegalStateException("?RangeQuery?"); } } else if (',' == e2.type) { firstValue = null; // Element e3 = elements.get(2); if ('\'' == e3.type) { lastValue = e3.toString(); } else { throw new IllegalStateException("?RangeQuery?"); } } else { throw new IllegalStateException("?, RangeQuery?"); } /** * lucene4.6? */ TermRangeQuery query = null; try { query = new TermRangeQuery(fieldNameEle.toString(), new BytesRef(firstValue.getBytes("UTF8")), new BytesRef(lastValue.getBytes("UTF8")), includeFirst, includeLast); } catch (UnsupportedEncodingException e) { throw new IllegalStateException("?, ??"); } return query; }
From source file:com.aliasi.lingmed.medline.MedlineSearcherImpl.java
License:Lingpipe license
/** * Find all MedlineCitations published in the range fromYear, toYear, inclusive. *///from ww w . ja v a 2 s . c o m public SearchResults<MedlineCitation> getCitationsInYearRange(String fromYear, String toYear) throws DaoException { if (!isYear(fromYear) || !isYear(toYear) || fromYear.compareTo(toYear) > 0) { throw new DaoException("bad year search range: " + fromYear + ", " + toYear); } TermRangeQuery rangeQuery = new TermRangeQuery(Fields.DATE_YEAR_FIELD, fromYear, toYear, true, true); return search(rangeQuery); }
From source file:com.b2international.index.lucene.IndexFieldBase.java
License:Apache License
@Override public final Query toExistsQuery() { return new TermRangeQuery(fieldName(), null, null, true, true); }
From source file:com.bewsia.script.safe.lucene.SEntity.java
License:Open Source License
public TermRangeQuery newTermRangeQuery(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper) { return new TermRangeQuery(field, lowerTerm, upperTerm, includeLower, includeUpper); }
From source file:com.esri.gpt.catalog.lucene.DatastoreField.java
License:Apache License
/** * Makes a range query.// w ww. jav a 2s . c o m * <p/> * Sub-classes should override this method if values need to be converted * for a search (ex. Doubles, Longs, Timestamps, ...). * <p/> * The default behavior is to return a new TermRangeQuery. * @param literalLowerValue the literal lower boundary value * @param literalUpperValue the literal upper boundary value * @param lowerBoundaryIsInclusive (>= versus >) * @param upperBoundaryIsInclusive (<= versus <) * @throws DiscoveryException if the supplied value cannot be converted */ protected Query makeRangeQuery(String literalLowerValue, String literalUpperValue, boolean lowerBoundaryIsInclusive, boolean upperBoundaryIsInclusive) throws DiscoveryException { return new TermRangeQuery(this.getName(), literalLowerValue, literalUpperValue, lowerBoundaryIsInclusive, upperBoundaryIsInclusive); }
From source file:com.esri.gpt.catalog.lucene.DiscoveryClauseAdapter.java
License:Apache License
/** * Appends a null-check query to the active boolean query. * @param activeBooleanQuery the active Lucene boolean query * @param comparisonFieldName the name of the stored, non-tokenized field to be checked * @throws DiscoveryException if an invalid clause is encountered *//*from ww w . j a v a 2 s .c o m*/ protected void appendNullCheck(BooleanQuery activeBooleanQuery, String comparisonFieldName) throws DiscoveryException { comparisonFieldName = Val.chkStr(comparisonFieldName); if (comparisonFieldName.length() == 0) { throw new IllegalArgumentException("An comparisonFieldName was not supplied."); } else { appendQuery(activeBooleanQuery, new LogicalClause.LogicalNot(), new TermRangeQuery(comparisonFieldName, null, null, false, false)); } }
From source file:com.esri.gpt.catalog.lucene.LowerCaseField.java
License:Apache License
/** * Makes a range query.// ww w .j a va2s . c om * @param literalLowerValue the literal lower boundary value * @param literalUpperValue the literal upper boundary value * @param lowerBoundaryIsInclusive (>= versus >) * @param upperBoundaryIsInclusive (<= versus <) * @throws DiscoveryException if the supplied value cannot be converted */ @Override protected Query makeRangeQuery(String literalLowerValue, String literalUpperValue, boolean lowerBoundaryIsInclusive, boolean upperBoundaryIsInclusive) throws DiscoveryException { if (literalLowerValue != null) literalLowerValue = literalLowerValue.toLowerCase(); if (literalUpperValue != null) literalUpperValue = literalUpperValue.toLowerCase(); return new TermRangeQuery(this.getName(), literalLowerValue, literalUpperValue, lowerBoundaryIsInclusive, upperBoundaryIsInclusive); }