SearchRequest
Search Request🔗
Description🔗
The SearchRequest as provided by the client. It allows to specify a query as
- a query string,
- a list of parsed query parts (from previous queries).
When a query (user-typed or generated) is sent to the Search web service, it is interpreted by Search! and returned as a list of query parts. These can be visualized to the user and allow for alteration, such as removing parts from the list. On subsequent calls to the Search web service, the list of parsed query parts is supplied in place of the query string.
When a request contains query parts (from the previous query) together with new query, the query parts resulting from interpretation of the new query are merged with the old query. Merging will automatically apply AND/OR mode as configured for the respective field if a single new query constraint is submitted.
Furthermore, the SearchRequest provides a number of options to parameterize the search results. All fields are optional, undefined values receive appropriate defaults, as configured in the search environment.
In general, only the query string gets interpreted (spelling correction, location resolving, synonym expansion), the query parts are not sent to the interpretation pipeline again, since they are supposed to come from a previous search request, and hence are already interpreted. However, there are a few cases in which query parts should at least get expanded by synonyms, and the complete synonym map for the entire request (query + query parts) needs to be rebuild. For this purpose the synonym expansion mode can be set to one of the following 3 options:
- QUERY: build the synonym map from the query only, expand the query. This is the default option.
- QUERY_AND_QUERYPARTS: build synonym map from both query and query parts, expand the query, prune and expand the query parts.
- QUERY_AND_SYNONYMMAP: build synonym map from both query and query parts, expand the query, only prune the query parts.
Fields🔗
Parameter Name | Type | Description | default |
---|---|---|---|
query | string | user typed keyword query (see query language description). It may be joined with the queryParts if it is a single OR-combination part that can be joined. | empty |
queryParts | list of QueryPart | list of query parts coming from parsing a previous query. | empty |
hiddenQueryParts | list of QueryPart | list of query parts treated as hidden parts (not returned and highlighted). | empty |
resultFields | list of string | optional customization of the fields to be included in the results. If it consists of a single wildcard field marked by "*" (star) then all available fields will be returned. If empty then the default result field set will be returned. Remark: Reducing the returned fields this way, will not in general improve performance, since Search is optimized to return the standard configured field set. It is not possible to request system fields such as 'roles' or nested sub-fields. | empty |
searchAfter | list of string | Used for pagination within Elastic Search Searcher (ignored for external searchers). Represents the sort values of the last item from the previous page. Must contain exactly the searchAfter of Search Result returned from the previous page query. | empty |
resultOffset | integer | the result item offset used for pagination. For example, a value of 20 will skip the top 20 results and return the subsequent results starting with result 21. resultOffset is ignored if searchAfter is set. resultOffset+pagesize cannot be more than 10000. | 0 |
pageSize | integer | optional parameter to specify the number of result items (max 1500). Only use a high number in case you need a list of results for use in follow-up actions. Do not use a high number when presenting results in a user interface. Therefore, pageSize is limited to 100 when used in combination with pagination parameters (searchAfter or resultOffset). And when pageSize is larger than 100, facet counts and search term highlighting are not provided (suppressFacetCounts and suppressHighlighting are implicitly set to true). If pageSize is not provided, the pre-configured page size of the searcher will be used. The pageSize parameter is ignored for external searchers. | |
provideTagcloud | string | the field name of a requested cloud. If empty, no cloud is returned | empty |
suppressResultList | boolean | if true then no result list is returned. Used for example when only the cloud is needed | false |
searchEngine | string | the identifier of the searcher to use. If empty, the default is used | configurable |
outputLanguage | string | the language to use for item label translations. If empty, the results are returned without translation. | empty |
suppressCorrection | boolean | if true then spelling correction on the input query is skipped. | false |
sorting | ResultSorting | optional result sorting definition. | empty |
ip | string | optional ip address of the request origin. If this is omitted, it is ascertained automatically when possible. | empty |
agent | string | optional user agent used in the search request for Indeed Jobs | empty |
uuid | string | optional used to uniquely and persistently identify a users browser or device. Implemented on the front end as a UUID stored in permanent local storage. Required for Broadbean search requests on CV Library. | empty |
suppressFacetCounts | boolean | Optional. If true the search responses will not contain facet count. Improves query response time. | false |
suppressHighlighting | boolean | Optional. If true search responses will not be highlighted. Note: If a snippet was requested from the searcher as part of the result fields, the snippet can still contain highlighting. | false |
mergeOverlappingSynonyms | boolean | Optional. If true the content of a query part item of type TEXT or LONG_TEXT (its term plus synonyms) that overlaps more than 75% with a previous query part of the same field and condition will be moved into the synonyms of that previous one. | false |
synonymLanguages | list of string | Optional. List of language codes preferred by the user to filter synonyms by languages. If not provided Search will select languages to use with following priority: User's saved language selection; default languages in the environment configuration; all languages defined in the environment configuration | null |
queryContext | QueryContext | Optional. Stores additional information about the query. | null |
synonymExpansionMode | enum | Optional setting for synonym expansion mode. Allowed values: QUERY, QUERY_AND_QUERYPARTS, QUERY_AND_SYNONYMMAP | QUERY |
useNlqs | boolean | Optional flag indicating that the BE needs to use the natural language query service (NLQS) should get used to interpret the query string. | false |
Example🔗
{
"query": "web developer city:london+10",
"queryParts": [
{
"field": "birthdate",
"condition": "REQUIRED",
"weight": 1,
"items": [
{
"value": "1975-01-01..1979-12-31"
}
]
}
],
"provideTagcloud": "compskills",
"synonymLanguages": [
"en",
"nl",
"de"
],
"synonymExpansionMode": "QUERY",
"queryContext": {
"querySessionID": "33583ef6-1a64-4427-9bd5-f40e0a6dd852",
"queryID": "db0e8702-f371-410c-ac4c-dadc91ef7822",
"queryTags": [
"match",
"savedSearch"
],
"matchSource": "doc://environmentName/searchEngine/documentID"
},
"search_after": [
"0.875",
"20",
"0.875",
"1524009600000"
]
}