Spring Data Solr

org.springframework.data.solr.core.query
Class Criteria

java.lang.Object
  extended by org.springframework.data.solr.core.query.Criteria
Direct Known Subclasses:
SimpleStringCriteria

public class Criteria
extends Object

Criteria is the central class when constructing queries. It follows more or less a fluent API style, which allows to easily chain together multiple criteria.

Author:
Christoph Strobl, Philipp Jardas, Francisco Spaeth

Nested Class Summary
static class Criteria.CriteriaEntry
          Single entry to be used when defining search criteria
static class Criteria.OperationKey
           
 
Field Summary
static String CRITERIA_VALUE_SEPERATOR
           
static String WILDCARD
           
 
Constructor Summary
  Criteria()
           
  Criteria(Field field)
          Creates a new Criteria for the given field
  Criteria(Function function)
           
protected Criteria(List<Criteria> criteriaChain, Field field)
           
protected Criteria(List<Criteria> criteriaChain, String fieldname)
           
  Criteria(String fieldname)
          Creates a new Criteria for the Filed with provided name
 
Method Summary
 Criteria and(Criteria... criterias)
          Chain using AND
 Criteria and(Criteria criteria)
          Chain using AND
 Criteria and(Field field)
          Chain using AND
 Criteria and(String fieldname)
          Chain using AND
 Criteria between(Object lowerBound, Object upperBound)
          Crates new Criteria.CriteriaEntry for RANGE [lowerBound TO upperBound]
 Criteria between(Object lowerBound, Object upperBound, boolean includeLowerBound, boolean includeUppderBound)
          Crates new Criteria.CriteriaEntry for RANGE [lowerBound TO upperBound]
 Criteria boost(float boost)
          Boost positive hit with given factor. eg. ^2.3
 Criteria contains(Iterable<String> values)
          Crates new Criteria.CriteriaEntry with leading and trailing wildcards for each entry
NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow.
 Criteria contains(String... values)
          Crates new Criteria.CriteriaEntry with leading and trailing wildcards for each entry
NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow.
 Criteria contains(String s)
          Crates new Criteria.CriteriaEntry with leading and trailing wildcards
NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow.
 Criteria endsWith(Iterable<String> values)
          Crates new Criteria.CriteriaEntry with leading wildcard for each entry
NOTE: mind your schema and execution times as leading wildcards may not be supported.
 Criteria endsWith(String... values)
          Crates new Criteria.CriteriaEntry with leading wildcard for each entry
NOTE: mind your schema and execution times as leading wildcards may not be supported.
 Criteria endsWith(String s)
          Crates new Criteria.CriteriaEntry with leading wildcard
NOTE: mind your schema and execution times as leading wildcards may not be supported.
 Criteria expression(String s)
          Crates new Criteria.CriteriaEntry allowing native solr expressions
 Criteria function(Function function)
          Creates Criteria.CriteriaEntry for given Function.
 Criteria fuzzy(String s)
          Crates new Criteria.CriteriaEntry with trailing ~
 Criteria fuzzy(String s, float levenshteinDistance)
          Crates new Criteria.CriteriaEntry with trailing ~ followed by levensteinDistance
 float getBoost()
          Boost criteria value
 String getConjunctionOperator()
          Conjunction to be used with this criteria (AND | OR)
 List<Criteria> getCriteriaChain()
          Get the collection of criterias
 Set<Criteria.CriteriaEntry> getCriteriaEntries()
           
 Field getField()
          Target field
 Criteria greaterThan(Object lowerBound)
          Crates new Criteria.CriteriaEntry for RANGE &#123;lowerBound TO *]
 Criteria greaterThanEqual(Object lowerBound)
          Crates new Criteria.CriteriaEntry for RANGE [lowerBound TO *]
 Criteria in(Iterable<?> values)
          Crates new Criteria.CriteriaEntry for multiple values (arg0 arg1 arg2 ...)
 Criteria in(Object... values)
          Crates new Criteria.CriteriaEntry for multiple values (arg0 arg1 arg2 ...)
 Criteria is(Iterable<?> values)
          Creates new Criteria.CriteriaEntry without any wildcards for each entry
 Criteria is(Object... values)
          Crates new Criteria.CriteriaEntry without any wildcards for each entry
 Criteria is(Object o)
          Crates new Criteria.CriteriaEntry without any wildcards.
 boolean isNegating()
           
 Criteria isNotNull()
          Crates new Criteria.CriteriaEntry for {@code !
 Criteria isNull()
          Crates new Criteria.CriteriaEntry for null values
 Criteria lessThan(Object upperBound)
          Crates new Criteria.CriteriaEntry for RANGE [* TO upperBound&#125;
 Criteria lessThanEqual(Object upperBound)
          Crates new Criteria.CriteriaEntry for RANGE [* TO upperBound]
 Criteria near(BoundingBox box)
          Creates new Criteria.CriteriaEntry for {@code !
 Criteria near(GeoLocation location, Distance distance)
          Creates new Criteria.CriteriaEntry for {@code !
 Criteria not()
          Negates current criteria usinng - operator
 Criteria or(Criteria criteria)
          Chain using OR
 Criteria or(Field field)
          Chain using OR
 Criteria or(String fieldname)
          Chain using OR
 Criteria sloppy(String phrase, int distance)
          Crates new Criteria.CriteriaEntry with trailing ~ followed by distance
 Criteria startsWith(Iterable<String> values)
          Crates new Criteria.CriteriaEntry with trailing wildcard for each entry
 Criteria startsWith(String... values)
          Crates new Criteria.CriteriaEntry with trailing wildcard for each entry
 Criteria startsWith(String s)
          Crates new Criteria.CriteriaEntry with trailing wildcard
NOTE: Strings will not be automatically split on whitespace.
static Criteria where(Field field)
          Static factory method to create a new Criteria for provided field
static Criteria where(Function function)
          Static factory method to create a new Criteria for function
static Criteria where(String fieldname)
          Static factory method to create a new Criteria for field with given name
 Criteria within(GeoLocation location, Distance distance)
          Creates new Criteria.CriteriaEntry for {@code !
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WILDCARD

public static final String WILDCARD
See Also:
Constant Field Values

CRITERIA_VALUE_SEPERATOR

public static final String CRITERIA_VALUE_SEPERATOR
See Also:
Constant Field Values
Constructor Detail

Criteria

public Criteria()

Criteria

public Criteria(Function function)
Parameters:
function -
Since:
1.1

Criteria

public Criteria(String fieldname)
Creates a new Criteria for the Filed with provided name

Parameters:
fieldname -

Criteria

public Criteria(Field field)
Creates a new Criteria for the given field

Parameters:
field -

Criteria

protected Criteria(List<Criteria> criteriaChain,
                   String fieldname)

Criteria

protected Criteria(List<Criteria> criteriaChain,
                   Field field)
Method Detail

where

public static Criteria where(String fieldname)
Static factory method to create a new Criteria for field with given name

Parameters:
fieldname - must not be null
Returns:

where

public static Criteria where(Function function)
Static factory method to create a new Criteria for function

Parameters:
function - must not be null
Returns:
Since:
1.1

where

public static Criteria where(Field field)
Static factory method to create a new Criteria for provided field

Parameters:
field - must not be null
Returns:

and

public Criteria and(Field field)
Chain using AND

Parameters:
field - must not be null
Returns:

and

public Criteria and(String fieldname)
Chain using AND

Parameters:
fieldname - must not be null
Returns:

and

public Criteria and(Criteria criteria)
Chain using AND

Parameters:
criteria -
Returns:

and

public Criteria and(Criteria... criterias)
Chain using AND

Parameters:
criterias -
Returns:

or

public Criteria or(Field field)
Chain using OR

Parameters:
field -
Returns:

or

public Criteria or(Criteria criteria)
Chain using OR

Parameters:
criteria -
Returns:

or

public Criteria or(String fieldname)
Chain using OR

Parameters:
fieldname -
Returns:

is

public Criteria is(Object o)
Crates new Criteria.CriteriaEntry without any wildcards. Strings with blanks will be escaped "string\ with\ blank"

Parameters:
o -
Returns:

is

public Criteria is(Object... values)
Crates new Criteria.CriteriaEntry without any wildcards for each entry

Parameters:
values -
Returns:

is

public Criteria is(Iterable<?> values)
Creates new Criteria.CriteriaEntry without any wildcards for each entry

Parameters:
values -
Returns:

isNull

public Criteria isNull()
Crates new Criteria.CriteriaEntry for null values

Returns:

isNotNull

public Criteria isNotNull()
Crates new Criteria.CriteriaEntry for !null values

Returns:

contains

public Criteria contains(String s)
Crates new Criteria.CriteriaEntry with leading and trailing wildcards
NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow. NOTE: Strings will not be automatically split on whitespace.

Parameters:
s -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

contains

public Criteria contains(String... values)
Crates new Criteria.CriteriaEntry with leading and trailing wildcards for each entry
NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow.

Parameters:
values -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

contains

public Criteria contains(Iterable<String> values)
Crates new Criteria.CriteriaEntry with leading and trailing wildcards for each entry
NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow.

Parameters:
values -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

startsWith

public Criteria startsWith(String s)
Crates new Criteria.CriteriaEntry with trailing wildcard
NOTE: Strings will not be automatically split on whitespace.

Parameters:
s -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

startsWith

public Criteria startsWith(String... values)
Crates new Criteria.CriteriaEntry with trailing wildcard for each entry

Parameters:
values -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

startsWith

public Criteria startsWith(Iterable<String> values)
Crates new Criteria.CriteriaEntry with trailing wildcard for each entry

Parameters:
values -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

endsWith

public Criteria endsWith(String s)
Crates new Criteria.CriteriaEntry with leading wildcard
NOTE: mind your schema and execution times as leading wildcards may not be supported. NOTE: Strings will not be automatically split on whitespace.

Parameters:
s -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

endsWith

public Criteria endsWith(String... values)
Crates new Criteria.CriteriaEntry with leading wildcard for each entry
NOTE: mind your schema and execution times as leading wildcards may not be supported.

Parameters:
values -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

endsWith

public Criteria endsWith(Iterable<String> values)
Crates new Criteria.CriteriaEntry with leading wildcard for each entry
NOTE: mind your schema and execution times as leading wildcards may not be supported.

Parameters:
values -
Returns:
Throws:
InvalidDataAccessApiUsageException - for strings with whitespace

not

public Criteria not()
Negates current criteria usinng - operator

Returns:

fuzzy

public Criteria fuzzy(String s)
Crates new Criteria.CriteriaEntry with trailing ~

Parameters:
s -
Returns:

fuzzy

public Criteria fuzzy(String s,
                      float levenshteinDistance)
Crates new Criteria.CriteriaEntry with trailing ~ followed by levensteinDistance

Parameters:
s -
levenshteinDistance -
Returns:

sloppy

public Criteria sloppy(String phrase,
                       int distance)
Crates new Criteria.CriteriaEntry with trailing ~ followed by distance

Parameters:
phrase -
distance -
Returns:

expression

public Criteria expression(String s)
Crates new Criteria.CriteriaEntry allowing native solr expressions

Parameters:
s -
Returns:

boost

public Criteria boost(float boost)
Boost positive hit with given factor. eg. ^2.3

Parameters:
boost -
Returns:

between

public Criteria between(Object lowerBound,
                        Object upperBound)
Crates new Criteria.CriteriaEntry for RANGE [lowerBound TO upperBound]

Parameters:
lowerBound -
upperBound -
Returns:

between

public Criteria between(Object lowerBound,
                        Object upperBound,
                        boolean includeLowerBound,
                        boolean includeUppderBound)
Crates new Criteria.CriteriaEntry for RANGE [lowerBound TO upperBound]

Parameters:
lowerBound -
upperBound -
includeLowerBound -
includeUppderBound -
Returns:

lessThan

public Criteria lessThan(Object upperBound)
Crates new Criteria.CriteriaEntry for RANGE [* TO upperBound&#125;

Parameters:
upperBound -
Returns:

lessThanEqual

public Criteria lessThanEqual(Object upperBound)
Crates new Criteria.CriteriaEntry for RANGE [* TO upperBound]

Parameters:
upperBound -
Returns:

greaterThan

public Criteria greaterThan(Object lowerBound)
Crates new Criteria.CriteriaEntry for RANGE &#123;lowerBound TO *]

Parameters:
lowerBound -
Returns:

greaterThanEqual

public Criteria greaterThanEqual(Object lowerBound)
Crates new Criteria.CriteriaEntry for RANGE [lowerBound TO *]

Parameters:
lowerBound -
Returns:

in

public Criteria in(Object... values)
Crates new Criteria.CriteriaEntry for multiple values (arg0 arg1 arg2 ...)

Parameters:
values -
Returns:

in

public Criteria in(Iterable<?> values)
Crates new Criteria.CriteriaEntry for multiple values (arg0 arg1 arg2 ...)

Parameters:
values - the collection containing the values to match against
Returns:

within

public Criteria within(GeoLocation location,
                       Distance distance)
Creates new Criteria.CriteriaEntry for !geodist

Parameters:
location - GeoLocation in degrees
distance -
Returns:

near

public Criteria near(BoundingBox box)
Creates new Criteria.CriteriaEntry for !bbox with exact coordinates

Parameters:
box -
Returns:

near

public Criteria near(GeoLocation location,
                     Distance distance)
Creates new Criteria.CriteriaEntry for !bbox for a specified distance. The difference between this and within is this is approximate while within is exact.

Parameters:
location -
distance -
Returns:
Throws:
IllegalArgumentException - if location is null
InvalidDataAccessApiUsageException - if distance is negative

function

public Criteria function(Function function)
Creates Criteria.CriteriaEntry for given Function.

Parameters:
function - must not be null
Returns:
Throws:
IllegalArgumentException - if function is null
Since:
1.1

getField

public Field getField()
Target field

Returns:
null if not set

getCriteriaEntries

public Set<Criteria.CriteriaEntry> getCriteriaEntries()
Returns:
unmdifiable set of all Criteria.CriteriaEntry

getConjunctionOperator

public String getConjunctionOperator()
Conjunction to be used with this criteria (AND | OR)

Returns:

getCriteriaChain

public List<Criteria> getCriteriaChain()
Get the collection of criterias

Returns:

isNegating

public boolean isNegating()
Returns:
true if not() criteria

getBoost

public float getBoost()
Boost criteria value

Returns:
Float.NaN if not set

Spring Data Solr

Copyright © 2011-2014-2014 Pivotal. All Rights Reserved.