public class QueryContext extends Object
ReadableIndex.query(Object)
and ReadableIndex.query(String, Object)
.
It allows a query to have sorting, default operators, and allows the engine
to turn off searching of modifications made inside a transaction,
to gain performance.Constructor and Description |
---|
QueryContext(Object queryOrQueryObject) |
Modifier and Type | Method and Description |
---|---|
QueryContext |
defaultOperator(org.apache.lucene.queryParser.QueryParser.Operator defaultOperator)
Changes the the default operator used between terms in compound queries,
default is OR.
|
org.apache.lucene.queryParser.QueryParser.Operator |
getDefaultOperator()
Returns the default operator used between terms in compound queries.
|
Object |
getQueryOrQueryObject() |
org.apache.lucene.search.Sort |
getSorting()
Returns the sorting setting for this context.
|
int |
getTop()
Return the max number of results to be returned.
|
boolean |
getTradeCorrectnessForSpeed()
Returns
true if this context is set to prioritize speed over
the inclusion of transactional state in the results. |
static QueryContext |
numericRange(String key,
Number from,
Number to)
Will create a
QueryContext with a query for numeric ranges, that is
values that have been indexed using ValueContext.indexNumeric() . |
static QueryContext |
numericRange(String key,
Number from,
Number to,
boolean includeFrom,
boolean includeTo)
Will create a
QueryContext with a query for numeric ranges, that is
values that have been indexed using ValueContext.indexNumeric() . |
QueryContext |
sort(org.apache.lucene.search.Sort sorting)
Returns a QueryContext with sorting added to it.
|
QueryContext |
sort(String key,
String... additionalKeys)
Returns a QueryContext with sorting added to it.
|
QueryContext |
sortByScore() |
QueryContext |
sortNumeric(String key,
boolean reversed)
Sort the results of a numeric range query if the query in this context
is a
NumericRangeQuery , see numericRange(String, Number, Number) ,
Otherwise an IllegalStateException will be thrown. |
QueryContext |
top(int numberOfTopHits)
Makes use of
IndexSearcher.search(org.apache.lucene.search.Query, int) ,
alternatively IndexSearcher.search(org.apache.lucene.search.Query, org.apache.lucene.search.Filter, int, Sort)
where only the top numberOfTopHits hits are returned. |
QueryContext |
tradeCorrectnessForSpeed()
Adding to or removing from an index affects results from query methods
inside the same transaction, even before those changes are committed.
|
public QueryContext(Object queryOrQueryObject)
public Object getQueryOrQueryObject()
public QueryContext sort(org.apache.lucene.search.Sort sorting)
sorting
- The sorting to be usedpublic QueryContext sort(String key, String... additionalKeys)
key
- The key to sort on.additionalKeys
- Any additional keys to sort on.public QueryContext sortByScore()
public QueryContext sortNumeric(String key, boolean reversed)
NumericRangeQuery
, see numericRange(String, Number, Number)
,
Otherwise an IllegalStateException
will be thrown.key
- the key to sort on.reversed
- if the sort order should be reversed or not. true
for lowest first (ascending), false
for highest first (descending)public org.apache.lucene.search.Sort getSorting()
sort(Sort)
or sortByScore()
public QueryContext defaultOperator(org.apache.lucene.queryParser.QueryParser.Operator defaultOperator)
defaultOperator
- The new operator to use.public org.apache.lucene.queryParser.QueryParser.Operator getDefaultOperator()
QueryParser.Operator
specified with
defaultOperator
or "OR" if none specified.public QueryContext tradeCorrectnessForSpeed()
public boolean getTradeCorrectnessForSpeed()
true
if this context is set to prioritize speed over
the inclusion of transactional state in the results.tradeCorrectnessForSpeed()
has been called.public QueryContext top(int numberOfTopHits)
IndexSearcher.search(org.apache.lucene.search.Query, int)
,
alternatively IndexSearcher.search(org.apache.lucene.search.Query, org.apache.lucene.search.Filter, int, Sort)
where only the top numberOfTopHits
hits are returned. Default
behavior is to return all hits, although lazily retrieved from lucene all
the way up to the IndexHits
iterator.numberOfTopHits
- the maximum number of top hits to return.QueryContext
with the number of top hits set.public int getTop()
top(int)
.public static QueryContext numericRange(String key, Number from, Number to)
QueryContext
with a query for numeric ranges, that is
values that have been indexed using ValueContext.indexNumeric()
.
from
(lower) and to
(higher) bounds are inclusive.
It will match the type of numbers supplied to the type of values that
are indexed in the index, f.ex. long, int, float and double.
If both from
and to
is null
then it will default
to int.key
- the property key to query.from
- the low end of the range (inclusive)to
- the high end of the range (inclusive)QueryContext
to do numeric range queries with.public static QueryContext numericRange(String key, Number from, Number to, boolean includeFrom, boolean includeTo)
QueryContext
with a query for numeric ranges, that is
values that have been indexed using ValueContext.indexNumeric()
.
It will match the type of numbers supplied to the type of values that
are indexed in the index, f.ex. long, int, float and double.
If both from
and to
is null
then it will default
to int.key
- the property key to query.from
- the low end of the range (inclusive)to
- the high end of the range (inclusive)includeFrom
- whether or not from
(the lower bound) is inclusive
or not.includeTo
- whether or not to
(the higher bound) is inclusive
or not.QueryContext
to do numeric range queries with.Copyright © 2002–2014 The Neo4j Graph Database Project. All rights reserved.