Package com.couchbase.client.java.search
Class SearchQuery
java.lang.Object
com.couchbase.client.java.search.SearchQuery
@Committed @Public public class SearchQuery extends Object
The FTS API entry point. Describes an FTS query entirely (index, query body and parameters) and can
be used at the
Bucket
level to perform said query. Also has factory methods for all types of
fts queries (as in the various types a query body can have: term, match, conjunction, ...).- Since:
- 2.3.0
- Author:
- Simon Baslé, Michael Nitschinger
-
Constructor Summary
Constructors Constructor Description SearchQuery(String indexName, AbstractFtsQuery queryPart)
Prepare an FTSSearchQuery
on an index. -
Method Summary
Modifier and Type Method Description SearchQuery
addFacet(String facetName, SearchFacet facet)
Adds oneSearchFacet
to the query.static BooleanFieldQuery
booleanField(boolean value)
Prepare aBooleanFieldQuery
body.static BooleanQuery
booleans()
Prepare aBooleanQuery
body.SearchQuery
clearFacets()
Clears all previously addedSearchFacet
.SearchQuery
clearHighlight()
Clears any previously configured highlighting.static ConjunctionQuery
conjuncts(AbstractFtsQuery... queries)
Prepare aConjunctionQuery
body.SearchQuery
consistentWith(Document... docs)
Sets the consistency to consider for this FTS query to AT_PLUS and uses the mutation information from the given documents to parameterize the consistency.SearchQuery
consistentWith(MutationState mutationState)
Sets the consistency to consider for this FTS query to AT_PLUS and uses theMutationState
directly to parameterize the consistency.SearchQuery
consistentWith(DocumentFragment... fragments)
Sets the consistency to consider for this FTS query to AT_PLUS and uses the mutation information from the given document fragments to parameterize the consistency.static DateRangeQuery
dateRange()
Prepare aDateRangeQuery
body.static DisjunctionQuery
disjuncts(AbstractFtsQuery... queries)
Prepare aDisjunctionQuery
body.static DocIdQuery
docId(String... docIds)
Prepare aDocIdQuery
body.SearchQuery
explain()
Activates the explanation of each result hit in the response.SearchQuery
explain(boolean explain)
Activates or deactivates the explanation of each result hit in the response, according to the parameter.JsonObject
export()
Exports the whole query as aJsonObject
.SearchQuery
fields(String... fields)
Configures the list of fields for which the whole value should be included in the response.static GeoBoundingBoxQuery
geoBoundingBox(double topLeftLon, double topLeftLat, double bottomRightLon, double bottomRightLat)
Prepare aGeoBoundingBoxQuery
body.static GeoDistanceQuery
geoDistance(double locationLon, double locationLat, String distance)
Prepare aGeoDistanceQuery
body.static GeoPolygonQuery
geoPolygon(List<Coordinate> points)
Prepare aGeoPolygonQuery
body.Map<String,SearchFacet>
getFacets()
String[]
getFields()
String[]
getHighlightFields()
HighlightStyle
getHighlightStyle()
Integer
getLimit()
Long
getServerSideTimeout()
Integer
getSkip()
SearchQuery
highlight()
Configures the highlighting of matches in the response for all fields, using the server's default highlighting style.SearchQuery
highlight(HighlightStyle style, String... fields)
Configures the highlighting of matches in the response.SearchQuery
highlight(String... fields)
Configures the highlighting of matches in the response, for the specified fields and using the server's default highlighting style.String
indexName()
void
injectParams(JsonObject queryJson)
Inject the top level parameters of a query into a preparedJsonObject
that represents the root of the query.SearchQuery
limit(int limit)
Add a limit to the query on the number of hits it can return.static MatchQuery
match(String match)
Prepare aMatchQuery
body.static MatchAllQuery
matchAll()
Prepare aMatchAllQuery
body.static MatchNoneQuery
matchNone()
Prepare aMatchNoneQuery
body.static MatchPhraseQuery
matchPhrase(String matchPhrase)
Prepare aMatchPhraseQuery
body.static NumericRangeQuery
numericRange()
Prepare aNumericRangeQuery
body.static PhraseQuery
phrase(String... terms)
Prepare aPhraseQuery
body.static PrefixQuery
prefix(String prefix)
Prepare aPrefixQuery
body.AbstractFtsQuery
query()
static QueryStringQuery
queryString(String query)
Prepare aQueryStringQuery
body.static RegexpQuery
regexp(String regexp)
Prepare aRegexpQuery
body.SearchQuery
searchConsistency(SearchConsistency consistency)
Sets the unparameterized consistency to consider for this FTS query.SearchQuery
serverSideTimeout(long timeout, TimeUnit unit)
Sets the server side timeout.SearchQuery
skip(int skip)
Set the number of hits to skip (eg.SearchQuery
sort(Object... sort)
Configures the list of fields (including special fields) which are used for sorting purposes.static TermQuery
term(String term)
Prepare aTermQuery
body.static TermRangeQuery
termRange()
Prepare aTermRangeQuery
body.static WildcardQuery
wildcard(String wildcard)
Prepare aWildcardQuery
body.
-
Constructor Details
-
SearchQuery
Prepare an FTSSearchQuery
on an index. Top level query parameters can be set after that by using the fluent API.- Parameters:
indexName
- the FTS index to search in.queryPart
- the body of the FTS query (eg. a match phrase query).
-
-
Method Details
-
indexName
- Returns:
- the name of the index targeted by this query.
-
query
- Returns:
- the actual query body.
-
export
Exports the whole query as aJsonObject
. -
injectParams
Inject the top level parameters of a query into a preparedJsonObject
that represents the root of the query.- Parameters:
queryJson
- the preparedJsonObject
for the whole query.
-
limit
Add a limit to the query on the number of hits it can return.- Parameters:
limit
- the maximum number of hits to return.- Returns:
- this SearchQuery for chaining.
-
skip
Set the number of hits to skip (eg. for pagination).- Parameters:
skip
- the number of results to skip.- Returns:
- this SearchQuery for chaining.
-
explain
Activates the explanation of each result hit in the response.- Returns:
- this SearchQuery for chaining.
-
explain
Activates or deactivates the explanation of each result hit in the response, according to the parameter.- Parameters:
explain
- should the response include an explanation of each hit (true) or not (false)?- Returns:
- this SearchQuery for chaining.
-
highlight
Configures the highlighting of matches in the response. This drives the inclusion of thefragments
in eachhit
. Note that to be highlighted, the fields must be stored in the FTS index.- Parameters:
style
- theHighlightStyle
to apply.fields
- the optional fields on which to highlight. If none, all fields where there is a match are highlighted.- Returns:
- this SearchQuery for chaining.
-
highlight
Configures the highlighting of matches in the response, for the specified fields and using the server's default highlighting style. This drives the inclusion of thefragments
in eachhit
. Note that to be highlighted, the fields must be stored in the FTS index.- Parameters:
fields
- the optional fields on which to highlight. If none, all fields where there is a match are highlighted.- Returns:
- this SearchQuery for chaining.
-
highlight
Configures the highlighting of matches in the response for all fields, using the server's default highlighting style. This drives the inclusion of thefragments
in eachhit
. Note that to be highlighted, the fields must be stored in the FTS index.- Returns:
- this SearchQuery for chaining.
-
clearHighlight
Clears any previously configured highlighting.- Returns:
- this SearchQuery for chaining.
- See Also:
highlight(HighlightStyle, String...)
-
fields
Configures the list of fields for which the whole value should be included in the response. If empty, no field values are included. This drives the inclusion of thefields
in eachhit
. Note that to be highlighted, the fields must be stored in the FTS index.- Parameters:
fields
-- Returns:
- this SearchQuery for chaining.
-
sort
Configures the list of fields (including special fields) which are used for sorting purposes. If empty, the default sorting (descending by score) is used by the server. The list of sort fields can include actual fields (like "firstname" but then they must be stored in the index, configured in the server side mapping). Fields provided first are considered first and in a "tie" case the next sort field is considered. So sorting by "firstname" and then "lastname" will first sort ascending by the firstname and if the names are equal then sort ascending by lastname. Special fields like "_id" and "_score" can also be used. If prefixed with "-" the sort order is set to descending. If no sort is provided, it is equal to sort("-_score"), since the server will sort it by score in descending order.- Parameters:
sort
- the fields that should take part in the sorting.- Returns:
- this SearchQuery for chaining.
-
addFacet
Adds oneSearchFacet
to the query. This is an additive operation (the given facets are added to any facet previously requested), but if an existing facet has the same name it will be replaced. This drives the inclusion of theSearchQueryResult.facets()
facets} in theSearchQueryResult
. Note that to be faceted, a field's value must be stored in the FTS index.- Parameters:
facetName
- the name of the facet to add (or replace if one already exists with same name).facet
- the facet to add.
-
clearFacets
Clears all previously addedSearchFacet
.- Returns:
- this SearchQuery for chaining.
- See Also:
addFacet(String, SearchFacet)
-
serverSideTimeout
Sets the server side timeout. By default, the SDK will set this value to the configuredsearchTimeout
from the environment.- Parameters:
timeout
- the server side timeout to apply.unit
- the unit for the timeout.- Returns:
- this SearchQuery for chaining.
-
searchConsistency
Sets the unparameterized consistency to consider for this FTS query. This replaces any consistency tuning previously set.- Parameters:
consistency
- the simple consistency to use.- Returns:
- this SearchQuery for chaining.
-
consistentWith
Sets the consistency to consider for this FTS query to AT_PLUS and uses the mutation information from the given documents to parameterize the consistency. This replaces any consistency tuning previously set.- Parameters:
docs
- one or modeDocument
to get mutation state information from.- Returns:
- this SearchQuery for chaining.
-
consistentWith
Sets the consistency to consider for this FTS query to AT_PLUS and uses the mutation information from the given document fragments to parameterize the consistency. This replaces any consistency tuning previously set.- Parameters:
fragments
- one or modeDocumentFragment
to get mutation state information from.- Returns:
- this SearchQuery for chaining.
-
consistentWith
Sets the consistency to consider for this FTS query to AT_PLUS and uses theMutationState
directly to parameterize the consistency. This replaces any consistency tuning previously set.- Parameters:
mutationState
- theMutationState
information to work with.- Returns:
- this SearchQuery for chaining.
-
getLimit
- Returns:
- the value of the
limit(int)
parameter, or null if it was not set.
-
getSkip
- Returns:
- the value of the
skip(int)
parameter, or null if it was not set.
-
getHighlightStyle
- Returns:
- the value of the
highlight style
parameter, or null if it was not set.
-
getHighlightFields
- Returns:
- the value of the
highlight fields
parameter, or an empty array if it was not set.
-
getFields
- Returns:
- the value of the
fields(String...)
parameter, or an empty array if it was not set.
-
getFacets
- Returns:
- the Map of
facets (by name)
, or an empty Map if it was not set.
-
getServerSideTimeout
- Returns:
- the value of the
serverSideTimeout(long, TimeUnit)
parameter, or null if it was not set.
-
queryString
Prepare aQueryStringQuery
body. -
match
Prepare aMatchQuery
body. -
matchPhrase
Prepare aMatchPhraseQuery
body. -
prefix
Prepare aPrefixQuery
body. -
regexp
Prepare aRegexpQuery
body. -
termRange
Prepare aTermRangeQuery
body. -
numericRange
Prepare aNumericRangeQuery
body. -
dateRange
Prepare aDateRangeQuery
body. -
disjuncts
Prepare aDisjunctionQuery
body. -
conjuncts
Prepare aConjunctionQuery
body. -
booleans
Prepare aBooleanQuery
body. -
wildcard
Prepare aWildcardQuery
body. -
docId
Prepare aDocIdQuery
body. -
booleanField
Prepare aBooleanFieldQuery
body. -
term
Prepare aTermQuery
body. -
phrase
Prepare aPhraseQuery
body. -
matchAll
Prepare aMatchAllQuery
body. -
matchNone
Prepare aMatchNoneQuery
body. -
geoBoundingBox
public static GeoBoundingBoxQuery geoBoundingBox(double topLeftLon, double topLeftLat, double bottomRightLon, double bottomRightLat)Prepare aGeoBoundingBoxQuery
body. -
geoDistance
public static GeoDistanceQuery geoDistance(double locationLon, double locationLat, String distance)Prepare aGeoDistanceQuery
body. -
geoPolygon
Prepare aGeoPolygonQuery
body.
-