# Search

Operations for search and suggest

## Category ASN for Navigation

> \<b>Required Roles\</b>: \<em>ApiPublicQueries\</em>

```json
{"openapi":"3.0.1","info":{"title":"FactFinder REST API","version":"v5"},"tags":[{"name":"search","description":"Operations for search and suggest"}],"servers":[{"url":"https://vector-demo.fact-finder.de/fact-finder/","description":"Generated server url"}],"security":[{"basicAuth":[]},{"oAuth2":["public_queries"]},{"apiKey":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"},"oAuth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"oauth/token","scopes":{"public_queries":"","import":"","database":"","config":"","analytics":"","jobs":"","monitor":"","manage":"","users":""}}}},"apiKey":{"type":"apiKey","name":"X-FF-API-Key","in":"header"}},"schemas":{"CategoryNavigation":{"required":["timedOut"],"type":"object","properties":{"facets":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"timedOut":{"type":"boolean","description":"If true, this search took longer than the timeout currently defined. Therefore, the results may not contain all relevant products."}}},"Facet":{"required":["associatedFieldName","detailedLinks","elements","filterStyle","selectedElements","selectionType","showPreviewImages"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"The name of the field that contains the values represented by this facet."},"decimalPlaces":{"type":"integer","description":"Specifies the amount of digits after the decimal separator for elements of slider facets.","format":"int32"},"detailedLinks":{"type":"integer","description":"Number of links to be displayed (for the selection menu).","format":"int32"},"elements":{"type":"array","description":"The elements shown in the filter.","items":{"$ref":"#/components/schemas/FacetElement"}},"filterStyle":{"type":"string","description":"The style in which the filter should be displayed.","enum":["DEFAULT","SLIDER","MULTISELECT","TREE"]},"name":{"type":"string","description":"Filter name that should be displayed to the user."},"selectedElements":{"type":"array","description":"The elements of the filter that are currently selected.","items":{"$ref":"#/components/schemas/FacetElement"}},"selectionType":{"type":"string","description":"Defines the way this filter behaves when elements are selected.","enum":["singleHideUnselected","singleShowUnselected","multiSelectOr","multiSelectAnd"]},"showPreviewImages":{"type":"boolean","description":"If true, preview images should be displayed to the user."},"type":{"type":"string","description":"The type of the filter elements.","enum":["FLOAT","INTEGER","MULTI","TEXT","CATEGORY_PATH","BOOLEAN","DATE","GTIN","ALPHANUMERIC","PROPERTY","GEO"]},"unit":{"type":"string","description":"The units to be shown, if filter elements represent (for instance) length, or weight."}}},"FacetElement":{"required":["clusterLevel","selected"],"type":"object","properties":{"absoluteMaxValue":{"type":"number","description":"The absolute maximum value for the overall slider range.","format":"double"},"absoluteMinValue":{"type":"number","description":"The absolute minimum value for the overall slider range.","format":"double"},"clusterLevel":{"type":"integer","description":"Level in the cluster hierarchy. Corresponding subcategories have a higher (deeper) level.","format":"int32"},"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"previewImageURL":{"type":"string","description":"URL to the preview image to be displayed with the element."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, IMPLICIT, if the selection is implicit, IRRELEVANT means, that the element has been selected by the user, but does not match any record of the search result, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]},"selectedMaxValue":{"type":"number","description":"The maximum value of the currently selected slider range.","format":"double"},"selectedMinValue":{"type":"number","description":"The minimum value of the currently selected slider range.","format":"double"},"showDistance":{"type":"boolean","description":"If 'true', the distance should be added to the element name label by frontend."},"text":{"type":"string","description":"The text to be displayed to the user."},"totalHits":{"type":"integer","description":"The number of products that the search result should contain when this facet element is selected.","format":"int32"}}},"SearchParams":{"required":["query"],"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"articleNumberSearch":{"type":"string","description":"Specifies if the search term should be interpreted as article number. Defaults to DETECT.","enum":["DETECT","ALWAYS","NEVER"]},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"exactSearchMode":{"type":"string","description":"Specifies whether the search term should be considered for the exact search, and how. Defaults to the mode that is configured for the channel.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"query":{"type":"string","description":"The search term."},"searchField":{"type":"string","description":"If set, the search term will be looked for only in the given field. Otherwise all searchable fields will be considered (for article number searches, all fields marked as containing article numbers)."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},"description":"Defines the search that should be executed when the element is clicked."},"AdvisorCampaignStatusHolder":{"required":["id"],"type":"object","properties":{"answerPath":{"type":"string","description":"The currently active path within the advisor tree, which should end at an answer: _QuestionID_AnswerID_QuestionID_AnswerID. If empty or null, the root questions will be shown."},"id":{"type":"string","description":"ID of the advisor campaign."}},"description":"Describes the advisor campaign that is currently active."},"CustomParameter":{"required":["cacheIrrelevant","name","values"],"type":"object","properties":{"cacheIrrelevant":{"type":"boolean","description":"When set to true, the custom parameter will not influence caching."},"name":{"type":"string","description":"The parameter name."},"values":{"type":"array","description":"The parameter values.","items":{"type":"string"}}}},"Filter":{"required":["name","substring","values"],"type":"object","properties":{"filterWarning":{"type":"string","description":"Contains warning about invalid filters (e.g. non-existent field or non-existent value).","enum":["NON_EXISTING_FIELD","NON_EXISTING_FIELD_VALUE"]},"name":{"type":"string","description":"The name of the filter."},"substring":{"type":"boolean","description":"If true, filter values will be applied as 'contains' instead of 'equals'."},"values":{"type":"array","description":"Filter values.","items":{"$ref":"#/components/schemas/FilterValue"}}}},"FilterValue":{"required":["exclude","type","value"],"type":"object","properties":{"exclude":{"type":"boolean","description":"When set to true, the filter will match when the record value does not equal the filter value."},"type":{"type":"string","description":"Describes how this filter value should interact with the corresponding filter field.","enum":["or","and"]},"value":{"$ref":"#/components/schemas/FilterValueInput"}}},"FilterValueInput":{"description":"The value to which the record values will be compared.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"Location":{"required":["latitude","longitude"],"type":"object","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},"description":"The location of the market."},"SortItem":{"required":["name","order"],"type":"object","properties":{"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction (ascending, descending).","enum":["asc","desc"]}}},"ApiError":{"required":["error"],"type":"object","properties":{"error":{"type":"string","description":"A short error description"},"errorDescription":{"type":"string","description":"A description of the error cause"},"stacktrace":{"type":"array","description":"The stacktrace from the error (will only be transmitted when the query parameter verbose=true was added to the request)","items":{"type":"string"}}},"description":"Contains information which will be returned when an error occurs."}}},"paths":{"/rest/v5/navigation/category/{channel}":{"get":{"tags":["search"],"summary":"Category ASN for Navigation","description":"<b>Required Roles</b>: <em>ApiPublicQueries</em>","operationId":"categoryNavigation","parameters":[{"name":"cacheIrrelevant","in":"query","description":"Flag parameters as cache irrelevant","required":false,"schema":{"type":"array","description":"Flag parameters as cache irrelevant","items":{"type":"string"}}},{"name":"channel","in":"path","description":"The channel","required":true,"schema":{"type":"string"}},{"name":"endLevel","in":"query","description":"Category end level","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"excludeProductsNotInRange","in":"query","description":"Use this parameter to override the geo setting \"exclude products not in range\" for this request.","required":false,"schema":{"type":"boolean","description":"Use this parameter to override the geo setting \"exclude products not in range\" for this request."}},{"name":"filter","in":"query","description":"Filter for the whole field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","required":false,"schema":{"type":"array","description":"Filter for the whole field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","items":{"type":"string"}}},{"name":"latitude","in":"query","description":"The latitude coordinate of the location.","required":false,"schema":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"}},{"name":"longitude","in":"query","description":"The longitude coordinate of the location.","required":false,"schema":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},{"name":"marketId","in":"query","description":"Only show products that have values for these market IDs.","required":false,"schema":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}}},{"name":"maxDistance","in":"query","description":"Use this parameter to override the geo setting \"maximum distance\" for this request.","required":false,"schema":{"minimum":1,"type":"number","description":"Use this parameter to override the geo setting \"maximum distance\" for this request.","format":"double"}},{"name":"purchaserId","in":"query","description":"Use this parameter to pass the purchaser ID. This ID is only needed, if the 'Customer-Specific Info' module is active. Otherwise it will be ignored.","required":false,"schema":{"maxLength":2147483647,"minLength":1,"type":"string","description":"Use this parameter to pass the purchaser ID. This ID is only needed, if the 'Customer-Specific Info' module is active. Otherwise it will be ignored."}},{"name":"showMarkets","in":"query","description":"Specifies whether the list of all existing markets and their distance to the search location should be included in the response. By default, the GEO setting \"showMarkets\" is applied.","required":false,"schema":{"type":"boolean","description":"Specifies whether the list of all existing markets and their distance to the search location should be included in the response. By default, the GEO setting \"showMarkets\" is applied."}},{"name":"showPermutedSearchParams","in":"query","description":"Specifies whether to include search parameters in the response for facet and sort item elements. The flag is enabled by default.","required":false,"schema":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements. The flag is enabled by default."}},{"name":"sid","in":"query","description":"The session id","required":false,"schema":{"type":"string"}},{"name":"splitDocumentsAt","in":"query","description":"Threshold for variant splitting of documents.","required":false,"schema":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},{"name":"startLevel","in":"query","description":"Category start level","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"substringFilter","in":"query","description":"Filter for a sub string of the field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","required":false,"schema":{"type":"array","description":"Filter for a sub string of the field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","items":{"type":"string"}}},{"name":"useAbTest","in":"query","description":"If true, AbTest features will be active.","required":false,"schema":{"type":"boolean","description":"If true, AbTest features will be active."}},{"name":"useCache","in":"query","description":"If true, the search result will be returned from cache memory, if a possible matching result exists.","required":false,"schema":{"type":"boolean","description":"If true, the search result will be returned from cache memory, if a possible matching result exists."}},{"name":"useGeo","in":"query","description":"If true, geoSearch features will be active.","required":false,"schema":{"type":"boolean","description":"If true, geoSearch features will be active."}},{"name":"userId","in":"query","description":"The user id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"X-FF-Timeout":{"description":"If true, the search is timed out. This can result in a response with 0 hits depending on when the timeout occurred.","style":"simple","schema":{"type":"boolean"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryNavigation"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}
```

## Navigation

> \<b>Required Roles\</b>: \<em>ApiPublicQueries\</em>

```json
{"openapi":"3.0.1","info":{"title":"FactFinder REST API","version":"v5"},"tags":[{"name":"search","description":"Operations for search and suggest"}],"servers":[{"url":"https://vector-demo.fact-finder.de/fact-finder/","description":"Generated server url"}],"security":[{"basicAuth":[]},{"oAuth2":["public_queries"]},{"apiKey":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"},"oAuth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"oauth/token","scopes":{"public_queries":"","import":"","database":"","config":"","analytics":"","jobs":"","monitor":"","manage":"","users":""}}}},"apiKey":{"type":"apiKey","name":"X-FF-API-Key","in":"header"}},"schemas":{"Result":{"required":["answers","articleNumberSearch","breadCrumbTrail","campaigns","exactSearchMode","facets","fieldRoles","filters","hits","resultType","scoreFirstHit","scoreLastHit","searchControlParams","singleWordResults","sortItems","splitDocuments","timedOut","tookAtlasAi","tookGPTSynonyms","tookLoop54","tookTotal","tookVector","tookWorldmatch","totalHits"],"type":"object","properties":{"answers":{"type":"array","description":"The selected answers of this result.","items":{"$ref":"#/components/schemas/Answer"}},"articleNumberSearch":{"type":"boolean","description":"Set to true when an article number search was performed."},"breadCrumbTrail":{"type":"array","description":"Describes the actions that lead to the current result. This may be used to return to an intermediate search result.","items":{"$ref":"#/components/schemas/BreadCrumbTrailItem"}},"campaigns":{"type":"array","description":"Contains the active campaigns for this result.","items":{"$ref":"#/components/schemas/Campaign"}},"exactSearchMode":{"type":"string","description":"The mode of the exact search that was applied.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"facets":{"type":"array","description":"The ASN filters (for after search navigation).","items":{"$ref":"#/components/schemas/Facet"}},"fieldRoles":{"type":"object","additionalProperties":{"type":"string","description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"filters":{"type":"array","description":"The filter applied for this result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Request linking param for follow-up search requests. Can improve request performance."},"geo":{"$ref":"#/components/schemas/Geo"},"hits":{"type":"array","description":"The relevant products.","items":{"$ref":"#/components/schemas/SearchRecord"}},"paging":{"$ref":"#/components/schemas/Paging"},"resultType":{"type":"string","description":"The type of the search result.","enum":["KEYWORD","VECTOR","HYBRID","FALLBACK"]},"scoreFirstHit":{"type":"number","description":"The score of the best match in the search result.","format":"double"},"scoreLastHit":{"type":"number","description":"The score of the worst match in the search result.","format":"double"},"searchControlParams":{"$ref":"#/components/schemas/SearchControlParams"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"singleWordResults":{"type":"array","description":"Contains the result from the Single word search.","items":{"$ref":"#/components/schemas/SingleWordSearchResult"}},"sortItems":{"type":"array","description":"Contains the available sortings.","items":{"$ref":"#/components/schemas/DescribedSortItem"}},"splitDocuments":{"type":"boolean","description":"If true, this result was created with variants split into separate documents"},"timedOut":{"type":"boolean","description":"If true, this search took longer than the timeout currently defined. Therefore, the results may not contain all relevant products."},"tookAtlasAi":{"minimum":0,"type":"integer","description":"The time required for Atlas AI searches (in ms).","format":"int64"},"tookGPTSynonyms":{"minimum":0,"type":"integer","description":"The time required for live GPT synonym generation (in ms).","format":"int64"},"tookLoop54":{"minimum":0,"type":"integer","description":"The time required for loop54 personalization (in ms).","format":"int64"},"tookTotal":{"minimum":0,"type":"integer","description":"The time required to produce the results in the framework (in ms).","format":"int64"},"tookVector":{"minimum":0,"type":"integer","description":"The time required for vector search (in ms).","format":"int64"},"tookWorldmatch":{"minimum":0,"type":"integer","description":"The time required to produce the results in the core (in ms).","format":"int64"},"totalHits":{"minimum":0,"type":"integer","description":"Total number of items in the search result.","format":"int32"}}},"Answer":{"required":["id","searchParams","selected","text"],"type":"object","properties":{"id":{"type":"string","description":"ID of this answer."},"questions":{"type":"array","description":"The questions to be shown when the answer is selected.","items":{"$ref":"#/components/schemas/Question"}},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"boolean","description":"True if the answer has been selected."},"text":{"type":"string","description":"Text, shown when the answer is active."}}},"Question":{"required":["answers","id","text","visible"],"type":"object","properties":{"answers":{"type":"array","description":"The answers associated to this question.","items":{"$ref":"#/components/schemas/Answer"}},"id":{"type":"string","description":"The ID of the question."},"text":{"type":"string","description":"The text to be shown to the user."},"visible":{"type":"boolean","description":"Set to true when the question is visible."}}},"SearchParams":{"required":["query"],"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"articleNumberSearch":{"type":"string","description":"Specifies if the search term should be interpreted as article number. Defaults to DETECT.","enum":["DETECT","ALWAYS","NEVER"]},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"exactSearchMode":{"type":"string","description":"Specifies whether the search term should be considered for the exact search, and how. Defaults to the mode that is configured for the channel.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"query":{"type":"string","description":"The search term."},"searchField":{"type":"string","description":"If set, the search term will be looked for only in the given field. Otherwise all searchable fields will be considered (for article number searches, all fields marked as containing article numbers)."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},"description":"Defines the search that should be executed when the element is clicked."},"AdvisorCampaignStatusHolder":{"required":["id"],"type":"object","properties":{"answerPath":{"type":"string","description":"The currently active path within the advisor tree, which should end at an answer: _QuestionID_AnswerID_QuestionID_AnswerID. If empty or null, the root questions will be shown."},"id":{"type":"string","description":"ID of the advisor campaign."}},"description":"Describes the advisor campaign that is currently active."},"CustomParameter":{"required":["cacheIrrelevant","name","values"],"type":"object","properties":{"cacheIrrelevant":{"type":"boolean","description":"When set to true, the custom parameter will not influence caching."},"name":{"type":"string","description":"The parameter name."},"values":{"type":"array","description":"The parameter values.","items":{"type":"string"}}}},"Filter":{"required":["name","substring","values"],"type":"object","properties":{"filterWarning":{"type":"string","description":"Contains warning about invalid filters (e.g. non-existent field or non-existent value).","enum":["NON_EXISTING_FIELD","NON_EXISTING_FIELD_VALUE"]},"name":{"type":"string","description":"The name of the filter."},"substring":{"type":"boolean","description":"If true, filter values will be applied as 'contains' instead of 'equals'."},"values":{"type":"array","description":"Filter values.","items":{"$ref":"#/components/schemas/FilterValue"}}}},"FilterValue":{"required":["exclude","type","value"],"type":"object","properties":{"exclude":{"type":"boolean","description":"When set to true, the filter will match when the record value does not equal the filter value."},"type":{"type":"string","description":"Describes how this filter value should interact with the corresponding filter field.","enum":["or","and"]},"value":{"$ref":"#/components/schemas/FilterValueInput"}}},"FilterValueInput":{"description":"The value to which the record values will be compared.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"Location":{"required":["latitude","longitude"],"type":"object","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},"description":"The location of the market."},"SortItem":{"required":["name","order"],"type":"object","properties":{"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction (ascending, descending).","enum":["asc","desc"]}}},"BreadCrumbTrailItem":{"required":["type"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"Contains the name of the field on which the filter operates. Used for filter type items."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"text":{"type":"string","description":"The text to be displayed to the user."},"type":{"type":"string","description":"Breadcrumb trail item type.","enum":["search","filter","advisor","unspecified"]},"value":{"type":"object","description":"Contains information corresponding to the item type (for example, contains the search term for the search type)."}}},"Campaign":{"required":["advisorTree","category","flavour"],"type":"object","properties":{"activeQuestions":{"type":"array","description":"The currently active questions to be shown to the user. These questions do not need to be the root questions, in case the user has already answered a question.","items":{"$ref":"#/components/schemas/Question"}},"ad":{"type":"boolean","description":"The setting which defines if this campaign is used as an ad."},"advisorTree":{"type":"array","description":"The advisor root questions associated with this campaign.","items":{"$ref":"#/components/schemas/Question"}},"category":{"type":"string","description":"The category of the campaign. May be empty."},"excludeProductsNotInMarkets":{"type":"boolean","description":"The setting which decides whether pushed products should be excluded if they are not mapped to any selected market."},"excludeProductsNotInRange":{"type":"boolean","description":"The setting which decides whether pushed products should be excluded if they are not close enough to the search location."},"feedbackTexts":{"type":"array","description":"The feedback text lines that will be displayed to the user.","items":{"$ref":"#/components/schemas/FeedbackText"}},"flavour":{"type":"string","description":"The kind of the campaign.","enum":["ADVISOR","REDIRECT","FEEDBACK","PRODUCT"]},"hits":{"type":"array","description":"The records associated with the campaign, if it should push products.","items":{"$ref":"#/components/schemas/RecordWithId"}},"id":{"type":"string","description":"The ID of the campaign."},"name":{"type":"string","description":"The name of the campaign."},"target":{"$ref":"#/components/schemas/Target"}}},"FeedbackText":{"required":["html","label","teaser"],"type":"object","properties":{"html":{"type":"boolean","description":"Set to true, if the text should be displayed as HTML."},"label":{"type":"string","description":"Describes where the text should be displayed."},"position":{"type":"integer","description":"The position the text should be displayed at if it is a teaser","format":"int32"},"teaser":{"type":"boolean","description":"Set to true, if the text is considered a teaser"},"text":{"type":"string","description":"The text to be shown to the user."}}},"RecordWithId":{"required":["id","masterValues","variantValues"],"type":"object","properties":{"id":{"type":"string","description":"The ID of the record."},"masterValues":{"type":"object","additionalProperties":{"type":"object","description":"Contains all fields in the record, with a string representation of the respective values."},"description":"Contains all fields in the record, with a string representation of the respective values."},"variantValues":{"type":"array","description":"Contains variants. The values are mapped from field names to the field value.","items":{"$ref":"#/components/schemas/VariantValues"}}}},"VariantValues":{"title":"VariantValues","type":"object","additionalProperties":{"type":"object"},"description":"Contains variants. The values are mapped from field names to the field value."},"Target":{"required":["destination"],"type":"object","properties":{"destination":{"type":"string","description":"The URL to which the user should be redirected."},"name":{"type":"string","description":"A name to identify the target URL."}},"description":"The redirect target."},"Facet":{"required":["associatedFieldName","detailedLinks","elements","filterStyle","selectedElements","selectionType","showPreviewImages"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"The name of the field that contains the values represented by this facet."},"decimalPlaces":{"type":"integer","description":"Specifies the amount of digits after the decimal separator for elements of slider facets.","format":"int32"},"detailedLinks":{"type":"integer","description":"Number of links to be displayed (for the selection menu).","format":"int32"},"elements":{"type":"array","description":"The elements shown in the filter.","items":{"$ref":"#/components/schemas/FacetElement"}},"filterStyle":{"type":"string","description":"The style in which the filter should be displayed.","enum":["DEFAULT","SLIDER","MULTISELECT","TREE"]},"name":{"type":"string","description":"Filter name that should be displayed to the user."},"selectedElements":{"type":"array","description":"The elements of the filter that are currently selected.","items":{"$ref":"#/components/schemas/FacetElement"}},"selectionType":{"type":"string","description":"Defines the way this filter behaves when elements are selected.","enum":["singleHideUnselected","singleShowUnselected","multiSelectOr","multiSelectAnd"]},"showPreviewImages":{"type":"boolean","description":"If true, preview images should be displayed to the user."},"type":{"type":"string","description":"The type of the filter elements.","enum":["FLOAT","INTEGER","MULTI","TEXT","CATEGORY_PATH","BOOLEAN","DATE","GTIN","ALPHANUMERIC","PROPERTY","GEO"]},"unit":{"type":"string","description":"The units to be shown, if filter elements represent (for instance) length, or weight."}}},"FacetElement":{"required":["clusterLevel","selected"],"type":"object","properties":{"absoluteMaxValue":{"type":"number","description":"The absolute maximum value for the overall slider range.","format":"double"},"absoluteMinValue":{"type":"number","description":"The absolute minimum value for the overall slider range.","format":"double"},"clusterLevel":{"type":"integer","description":"Level in the cluster hierarchy. Corresponding subcategories have a higher (deeper) level.","format":"int32"},"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"previewImageURL":{"type":"string","description":"URL to the preview image to be displayed with the element."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, IMPLICIT, if the selection is implicit, IRRELEVANT means, that the element has been selected by the user, but does not match any record of the search result, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]},"selectedMaxValue":{"type":"number","description":"The maximum value of the currently selected slider range.","format":"double"},"selectedMinValue":{"type":"number","description":"The minimum value of the currently selected slider range.","format":"double"},"showDistance":{"type":"boolean","description":"If 'true', the distance should be added to the element name label by frontend."},"text":{"type":"string","description":"The text to be displayed to the user."},"totalHits":{"type":"integer","description":"The number of products that the search result should contain when this facet element is selected.","format":"int32"}}},"Geo":{"required":["markets","selectedMarkets","showDistance","showMarkets"],"type":"object","properties":{"markets":{"type":"array","description":"The unselected markets","items":{"$ref":"#/components/schemas/Market"}},"selectedMarkets":{"type":"array","description":"The selected markets","items":{"$ref":"#/components/schemas/Market"}},"showDistance":{"type":"boolean","description":"Should show the distance attached to the markets."},"showMarkets":{"type":"boolean","description":"Should show the list of all existing markets."}},"description":"Contains the selected and unselected markets."},"Market":{"type":"object","properties":{"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"hasProducts":{"type":"boolean","description":"True, if the market has at least one product mapped to it in the current search result, otherwise false."},"id":{"type":"string","description":"Id of the market"},"location":{"$ref":"#/components/schemas/Location"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]}}},"SearchRecord":{"required":["foundWords","id","masterValues","position","score","variantValues"],"type":"object","properties":{"foundWords":{"type":"array","description":"The words that caused this record to be part of the result.","items":{"type":"string"}},"id":{"type":"string","description":"The ID of the record."},"masterValues":{"type":"object","additionalProperties":{"type":"object","description":"Contains all fields in the record, with a string representation of the respective values."},"description":"Contains all fields in the record, with a string representation of the respective values."},"position":{"type":"integer","description":"The position of the record in the search results (starting with 0).","format":"int32"},"score":{"type":"number","description":"Defines how well the record matches the search term.","format":"float"},"variantValues":{"type":"array","description":"Contains variants. The values are mapped from field names to the field value.","items":{"$ref":"#/components/schemas/VariantValues"}}}},"Paging":{"required":["currentPage","defaultHitsPerPage","hitsPerPage","nextLink","pageCount","previousLink"],"type":"object","properties":{"currentPage":{"type":"integer","description":"The number of the currently selected page.","format":"int32"},"defaultHitsPerPage":{"type":"integer","description":"The default number of products shown per page, as defined in the configuration.","format":"int32"},"hitsPerPage":{"type":"integer","description":"The number of products shown per page (the last page may contain fewer products).","format":"int32"},"nextLink":{"$ref":"#/components/schemas/PageLink"},"pageCount":{"type":"integer","description":"The total number of pages for this search result.","format":"int32"},"previousLink":{"$ref":"#/components/schemas/PageLink"}},"description":"Defines the paging properties."},"PageLink":{"required":["currentPage","number"],"type":"object","properties":{"currentPage":{"type":"boolean","description":"True, when this page is the current page."},"number":{"type":"integer","description":"Number of the page in the search result.","format":"int32"},"searchParams":{"$ref":"#/components/schemas/SearchParams"}},"description":"Defines the page to be requested when the 'next page' link is selected."},"SearchControlParams":{"type":"object","properties":{"deduplicationField":{"type":"string","description":"Specifies on which field variants should be deduplicated."},"idsOnly":{"type":"boolean","description":"If true, the returned records will contain only record IDs."},"useAbTest":{"type":"boolean","description":"If true, abTest features will be active."},"useAsn":{"type":"boolean","description":"If true, filters should be generated for the result."},"useAso":{"type":"boolean","description":"If true, automatic search optimization will be used."},"useAtlasAi":{"type":"boolean","description":"If true, Atlas AI will be used."},"useCache":{"type":"boolean","description":"If true, the search result will be returned from cache memory, if a possible matching result exists."},"useCampaigns":{"type":"boolean","description":"If true, campaigns corresponding to this search result will be returned."},"useDeduplication":{"type":"boolean","description":"If true, the configured deduplication of variants will be used."},"useFoundWords":{"type":"boolean","description":"If true, the words that led to the records in the search results will be determined; this may require a large amount of processing time."},"useGeo":{"type":"boolean","description":"If true, geoSearch features will be active."},"usePersonalization":{"type":"boolean","description":"If true, the relevant products in the result will be personalized."},"useRanking":{"type":"boolean","description":"If true, ranking will be applied."},"useSearch":{"type":"boolean","description":"If true, search will be executed for the query."},"useSemanticEnhancer":{"type":"boolean","description":"If true, the semantic enhancer will be used."},"useVectorSearchMode":{"type":"string","description":"Specifies the integration of keyword search and vector search.","enum":["DISABLED","FALLBACK","ONLY","HYBRID"]}},"description":"The search control parameters used to generate this search result."},"SingleWordSearchResult":{"required":["previewRecords","totalHits","word"],"type":"object","properties":{"previewRecords":{"type":"array","description":"The first few products of the search result, to be used as a preview.","items":{"$ref":"#/components/schemas/SearchRecord"}},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"totalHits":{"type":"integer","description":"The total number of items to be expected in this search result.","format":"int32"},"word":{"type":"string","description":"The term that was searched for."}}},"DescribedSortItem":{"required":["description","name","order","searchParams","selected"],"type":"object","properties":{"description":{"type":"string","description":"The sorting option description, which should be displayed frontend."},"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction.","enum":["asc","desc"]},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"boolean","description":"If true, the sorting is applied to the current search result."}}},"ApiError":{"required":["error"],"type":"object","properties":{"error":{"type":"string","description":"A short error description"},"errorDescription":{"type":"string","description":"A description of the error cause"},"stacktrace":{"type":"array","description":"The stacktrace from the error (will only be transmitted when the query parameter verbose=true was added to the request)","items":{"type":"string"}}},"description":"Contains information which will be returned when an error occurs."}}},"paths":{"/rest/v5/navigation/{channel}":{"get":{"tags":["search"],"summary":"Navigation","description":"<b>Required Roles</b>: <em>ApiPublicQueries</em>","operationId":"navigationWithGET","parameters":[{"name":"advisorStatus","in":"query","description":"For specifying the current campaign id and answer path; format: campaignId-answerPath; example = '4-_0_1'","required":false,"schema":{"maxLength":2147483647,"minLength":1,"type":"string","description":"For specifying the current campaign id and answer path; format: campaignId-answerPath; example = '4-_0_1'"}},{"name":"cacheIrrelevant","in":"query","description":"Flag parameters as cache irrelevant","required":false,"schema":{"type":"array","description":"Flag parameters as cache irrelevant","items":{"type":"string"}}},{"name":"channel","in":"path","description":"The channel","required":true,"schema":{"type":"string"}},{"name":"deduplicationField","in":"query","description":"Specifies on which field variants should be deduplicated.","required":false,"schema":{"type":"string","description":"Specifies on which field variants should be deduplicated."}},{"name":"excludeProductsNotInRange","in":"query","description":"Use this parameter to override the geo setting \"exclude products not in range\" for this request.","required":false,"schema":{"type":"boolean","description":"Use this parameter to override the geo setting \"exclude products not in range\" for this request."}},{"name":"filter","in":"query","description":"Filter for the whole field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","required":false,"schema":{"type":"array","description":"Filter for the whole field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","items":{"type":"string"}}},{"name":"followSearch","in":"query","description":"Optional request linking param from a previous search result or search param object. Can improve request performance.","required":false,"schema":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."}},{"name":"hitsPerPage","in":"query","description":"In the FactFinder Management Interface you can define how many results will be returned on a page by default. If you prefer another number, you can set it with this parameter. Maximum of 100000 hits per page.","required":false,"schema":{"maximum":100000,"minimum":0,"type":"integer","description":"In the FactFinder Management Interface you can define how many results will be returned on a page by default. If you prefer another number, you can set it with this parameter. Maximum of 100000 hits per page.","format":"int32"}},{"name":"idsOnly","in":"query","description":"If true, the returned records will contain only record IDs.","required":false,"schema":{"type":"boolean","description":"If true, the returned records will contain only record IDs."}},{"name":"latitude","in":"query","description":"The latitude coordinate of the location.","required":false,"schema":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"}},{"name":"longitude","in":"query","description":"The longitude coordinate of the location.","required":false,"schema":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},{"name":"marketId","in":"query","description":"Only show products that have values for these market IDs.","required":false,"schema":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}}},{"name":"maxCountVariants","in":"query","description":"The maximum number of variants to return for every record","required":false,"schema":{"type":"integer","description":"The maximum number of variants to return for every record","format":"int32"}},{"name":"maxDistance","in":"query","description":"Use this parameter to override the geo setting \"maximum distance\" for this request.","required":false,"schema":{"minimum":1,"type":"number","description":"Use this parameter to override the geo setting \"maximum distance\" for this request.","format":"double"}},{"name":"page","in":"query","description":"If a search result contains many results these will be divided into pages. This limits the amount of data that has to be sent in one go. You can indicate which page should be returned. Page numbering starts at 1 and ends at 1.000.000.","required":false,"schema":{"maximum":1000000,"minimum":1,"type":"integer","description":"If a search result contains many results these will be divided into pages. This limits the amount of data that has to be sent in one go. You can indicate which page should be returned. Page numbering starts at 1 and ends at 1.000.000.","format":"int32"}},{"name":"purchaserId","in":"query","description":"Use this parameter to pass the purchaser ID. This ID is only needed, if the 'Customer-Specific Info' module is active. Otherwise it will be ignored.","required":false,"schema":{"maxLength":2147483647,"minLength":1,"type":"string","description":"Use this parameter to pass the purchaser ID. This ID is only needed, if the 'Customer-Specific Info' module is active. Otherwise it will be ignored."}},{"name":"showMarkets","in":"query","description":"Specifies whether the list of all existing markets and their distance to the search location should be included in the response. By default, the GEO setting \"showMarkets\" is applied.","required":false,"schema":{"type":"boolean","description":"Specifies whether the list of all existing markets and their distance to the search location should be included in the response. By default, the GEO setting \"showMarkets\" is applied."}},{"name":"showPermutedSearchParams","in":"query","description":"Specifies whether to include search parameters in the response for facet and sort item elements. The flag is enabled by default.","required":false,"schema":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements. The flag is enabled by default."}},{"name":"sid","in":"query","description":"The session id","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort the result; use FieldName Relevancy to sort the relevancy; format: FieldName:order order must be either asc or desc; example Manufacturer:asc","required":false,"schema":{"type":"array","description":"Sort the result; use FieldName Relevancy to sort the relevancy; format: FieldName:order order must be either asc or desc; example Manufacturer:asc","items":{"type":"string"}}},{"name":"splitDocumentsAt","in":"query","description":"Threshold for variant splitting of documents.","required":false,"schema":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},{"name":"substringFilter","in":"query","description":"Filter for a sub string of the field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","required":false,"schema":{"type":"array","description":"Filter for a sub string of the field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","items":{"type":"string"}}},{"name":"useAbTest","in":"query","description":"If true, AbTest features will be active.","required":false,"schema":{"type":"boolean","description":"If true, AbTest features will be active."}},{"name":"useAsn","in":"query","description":"If true, filters should be generated for the result.","required":false,"schema":{"type":"boolean","description":"If true, filters should be generated for the result."}},{"name":"useAso","in":"query","description":"If true, automatic search optimization will be used.","required":false,"schema":{"type":"boolean","description":"If true, automatic search optimization will be used."}},{"name":"useAtlasAi","in":"query","description":"If true, Atlas AI will be used.","required":false,"schema":{"type":"boolean","description":"If true, Atlas AI will be used."}},{"name":"useCache","in":"query","description":"If true, the search result will be returned from cache memory, if a possible matching result exists.","required":false,"schema":{"type":"boolean","description":"If true, the search result will be returned from cache memory, if a possible matching result exists."}},{"name":"useCampaigns","in":"query","description":"If true, campaigns corresponding to this search result will be returned.","required":false,"schema":{"type":"boolean","description":"If true, campaigns corresponding to this search result will be returned."}},{"name":"useDeduplication","in":"query","description":"If true, the configured deduplication of variants will be used.","required":false,"schema":{"type":"boolean","description":"If true, the configured deduplication of variants will be used."}},{"name":"useFoundWords","in":"query","description":"If true, the words that led to the records in the search results will be determined; this may require a large amount of processing time.","required":false,"schema":{"type":"boolean","description":"If true, the words that led to the records in the search results will be determined; this may require a large amount of processing time."}},{"name":"useGeo","in":"query","description":"If true, geoSearch features will be active.","required":false,"schema":{"type":"boolean","description":"If true, geoSearch features will be active."}},{"name":"usePersonalization","in":"query","description":"If true, the relevant products in the result will be personalized.","required":false,"schema":{"type":"boolean","description":"If true, the relevant products in the result will be personalized."}},{"name":"useRanking","in":"query","description":"If true, ranking will be applied.","required":false,"schema":{"type":"boolean","description":"If true, ranking will be applied."}},{"name":"useSearch","in":"query","description":"If true, search will be executed for the query.","required":false,"schema":{"type":"boolean","description":"If true, search will be executed for the query."}},{"name":"useSemanticEnhancer","in":"query","description":"If true, the semantic enhancer will be used.","required":false,"schema":{"type":"boolean","description":"If true, the semantic enhancer will be used."}},{"name":"useVectorSearchMode","in":"query","description":"Specifies the integration of keyword search and vector search.","required":false,"schema":{"type":"string","description":"Specifies the integration of keyword search and vector search.","enum":["DISABLED","FALLBACK","ONLY","HYBRID"]}},{"name":"userId","in":"query","description":"The user id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"X-FF-Timeout":{"description":"If true, the search is timed out. This can result in a response with 0 hits depending on when the timeout occurred.","style":"simple","schema":{"type":"boolean"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}
```

## Navigation with POST

> \<b>Required Roles\</b>: \<em>ApiPublicQueries\</em>

```json
{"openapi":"3.0.1","info":{"title":"FactFinder REST API","version":"v5"},"tags":[{"name":"search","description":"Operations for search and suggest"}],"servers":[{"url":"https://vector-demo.fact-finder.de/fact-finder/","description":"Generated server url"}],"security":[{"basicAuth":[]},{"oAuth2":["public_queries"]},{"apiKey":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"},"oAuth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"oauth/token","scopes":{"public_queries":"","import":"","database":"","config":"","analytics":"","jobs":"","monitor":"","manage":"","users":""}}}},"apiKey":{"type":"apiKey","name":"X-FF-API-Key","in":"header"}},"schemas":{"NavigationRequest":{"required":["params"],"type":"object","properties":{"params":{"$ref":"#/components/schemas/NavigationParams"},"searchControlParams":{"$ref":"#/components/schemas/SearchControlParams"},"sid":{"type":"string","description":"The session ID of the user sending this search request."},"userId":{"type":"string","description":"The user ID of the user sending this search request."}}},"NavigationParams":{"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},"description":"The params describing the search."},"AdvisorCampaignStatusHolder":{"required":["id"],"type":"object","properties":{"answerPath":{"type":"string","description":"The currently active path within the advisor tree, which should end at an answer: _QuestionID_AnswerID_QuestionID_AnswerID. If empty or null, the root questions will be shown."},"id":{"type":"string","description":"ID of the advisor campaign."}},"description":"Describes the advisor campaign that is currently active."},"CustomParameter":{"required":["cacheIrrelevant","name","values"],"type":"object","properties":{"cacheIrrelevant":{"type":"boolean","description":"When set to true, the custom parameter will not influence caching."},"name":{"type":"string","description":"The parameter name."},"values":{"type":"array","description":"The parameter values.","items":{"type":"string"}}}},"Filter":{"required":["name","substring","values"],"type":"object","properties":{"filterWarning":{"type":"string","description":"Contains warning about invalid filters (e.g. non-existent field or non-existent value).","enum":["NON_EXISTING_FIELD","NON_EXISTING_FIELD_VALUE"]},"name":{"type":"string","description":"The name of the filter."},"substring":{"type":"boolean","description":"If true, filter values will be applied as 'contains' instead of 'equals'."},"values":{"type":"array","description":"Filter values.","items":{"$ref":"#/components/schemas/FilterValue"}}}},"FilterValue":{"required":["exclude","type","value"],"type":"object","properties":{"exclude":{"type":"boolean","description":"When set to true, the filter will match when the record value does not equal the filter value."},"type":{"type":"string","description":"Describes how this filter value should interact with the corresponding filter field.","enum":["or","and"]},"value":{"$ref":"#/components/schemas/FilterValueInput"}}},"FilterValueInput":{"description":"The value to which the record values will be compared.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"Location":{"required":["latitude","longitude"],"type":"object","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},"description":"The location of the market."},"SortItem":{"required":["name","order"],"type":"object","properties":{"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction (ascending, descending).","enum":["asc","desc"]}}},"SearchControlParams":{"type":"object","properties":{"deduplicationField":{"type":"string","description":"Specifies on which field variants should be deduplicated."},"idsOnly":{"type":"boolean","description":"If true, the returned records will contain only record IDs."},"useAbTest":{"type":"boolean","description":"If true, abTest features will be active."},"useAsn":{"type":"boolean","description":"If true, filters should be generated for the result."},"useAso":{"type":"boolean","description":"If true, automatic search optimization will be used."},"useAtlasAi":{"type":"boolean","description":"If true, Atlas AI will be used."},"useCache":{"type":"boolean","description":"If true, the search result will be returned from cache memory, if a possible matching result exists."},"useCampaigns":{"type":"boolean","description":"If true, campaigns corresponding to this search result will be returned."},"useDeduplication":{"type":"boolean","description":"If true, the configured deduplication of variants will be used."},"useFoundWords":{"type":"boolean","description":"If true, the words that led to the records in the search results will be determined; this may require a large amount of processing time."},"useGeo":{"type":"boolean","description":"If true, geoSearch features will be active."},"usePersonalization":{"type":"boolean","description":"If true, the relevant products in the result will be personalized."},"useRanking":{"type":"boolean","description":"If true, ranking will be applied."},"useSearch":{"type":"boolean","description":"If true, search will be executed for the query."},"useSemanticEnhancer":{"type":"boolean","description":"If true, the semantic enhancer will be used."},"useVectorSearchMode":{"type":"string","description":"Specifies the integration of keyword search and vector search.","enum":["DISABLED","FALLBACK","ONLY","HYBRID"]}},"description":"The search control parameters used to generate this search result."},"Result":{"required":["answers","articleNumberSearch","breadCrumbTrail","campaigns","exactSearchMode","facets","fieldRoles","filters","hits","resultType","scoreFirstHit","scoreLastHit","searchControlParams","singleWordResults","sortItems","splitDocuments","timedOut","tookAtlasAi","tookGPTSynonyms","tookLoop54","tookTotal","tookVector","tookWorldmatch","totalHits"],"type":"object","properties":{"answers":{"type":"array","description":"The selected answers of this result.","items":{"$ref":"#/components/schemas/Answer"}},"articleNumberSearch":{"type":"boolean","description":"Set to true when an article number search was performed."},"breadCrumbTrail":{"type":"array","description":"Describes the actions that lead to the current result. This may be used to return to an intermediate search result.","items":{"$ref":"#/components/schemas/BreadCrumbTrailItem"}},"campaigns":{"type":"array","description":"Contains the active campaigns for this result.","items":{"$ref":"#/components/schemas/Campaign"}},"exactSearchMode":{"type":"string","description":"The mode of the exact search that was applied.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"facets":{"type":"array","description":"The ASN filters (for after search navigation).","items":{"$ref":"#/components/schemas/Facet"}},"fieldRoles":{"type":"object","additionalProperties":{"type":"string","description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"filters":{"type":"array","description":"The filter applied for this result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Request linking param for follow-up search requests. Can improve request performance."},"geo":{"$ref":"#/components/schemas/Geo"},"hits":{"type":"array","description":"The relevant products.","items":{"$ref":"#/components/schemas/SearchRecord"}},"paging":{"$ref":"#/components/schemas/Paging"},"resultType":{"type":"string","description":"The type of the search result.","enum":["KEYWORD","VECTOR","HYBRID","FALLBACK"]},"scoreFirstHit":{"type":"number","description":"The score of the best match in the search result.","format":"double"},"scoreLastHit":{"type":"number","description":"The score of the worst match in the search result.","format":"double"},"searchControlParams":{"$ref":"#/components/schemas/SearchControlParams"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"singleWordResults":{"type":"array","description":"Contains the result from the Single word search.","items":{"$ref":"#/components/schemas/SingleWordSearchResult"}},"sortItems":{"type":"array","description":"Contains the available sortings.","items":{"$ref":"#/components/schemas/DescribedSortItem"}},"splitDocuments":{"type":"boolean","description":"If true, this result was created with variants split into separate documents"},"timedOut":{"type":"boolean","description":"If true, this search took longer than the timeout currently defined. Therefore, the results may not contain all relevant products."},"tookAtlasAi":{"minimum":0,"type":"integer","description":"The time required for Atlas AI searches (in ms).","format":"int64"},"tookGPTSynonyms":{"minimum":0,"type":"integer","description":"The time required for live GPT synonym generation (in ms).","format":"int64"},"tookLoop54":{"minimum":0,"type":"integer","description":"The time required for loop54 personalization (in ms).","format":"int64"},"tookTotal":{"minimum":0,"type":"integer","description":"The time required to produce the results in the framework (in ms).","format":"int64"},"tookVector":{"minimum":0,"type":"integer","description":"The time required for vector search (in ms).","format":"int64"},"tookWorldmatch":{"minimum":0,"type":"integer","description":"The time required to produce the results in the core (in ms).","format":"int64"},"totalHits":{"minimum":0,"type":"integer","description":"Total number of items in the search result.","format":"int32"}}},"Answer":{"required":["id","searchParams","selected","text"],"type":"object","properties":{"id":{"type":"string","description":"ID of this answer."},"questions":{"type":"array","description":"The questions to be shown when the answer is selected.","items":{"$ref":"#/components/schemas/Question"}},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"boolean","description":"True if the answer has been selected."},"text":{"type":"string","description":"Text, shown when the answer is active."}}},"Question":{"required":["answers","id","text","visible"],"type":"object","properties":{"answers":{"type":"array","description":"The answers associated to this question.","items":{"$ref":"#/components/schemas/Answer"}},"id":{"type":"string","description":"The ID of the question."},"text":{"type":"string","description":"The text to be shown to the user."},"visible":{"type":"boolean","description":"Set to true when the question is visible."}}},"SearchParams":{"required":["query"],"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"articleNumberSearch":{"type":"string","description":"Specifies if the search term should be interpreted as article number. Defaults to DETECT.","enum":["DETECT","ALWAYS","NEVER"]},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"exactSearchMode":{"type":"string","description":"Specifies whether the search term should be considered for the exact search, and how. Defaults to the mode that is configured for the channel.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"query":{"type":"string","description":"The search term."},"searchField":{"type":"string","description":"If set, the search term will be looked for only in the given field. Otherwise all searchable fields will be considered (for article number searches, all fields marked as containing article numbers)."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},"description":"Defines the search that should be executed when the element is clicked."},"BreadCrumbTrailItem":{"required":["type"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"Contains the name of the field on which the filter operates. Used for filter type items."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"text":{"type":"string","description":"The text to be displayed to the user."},"type":{"type":"string","description":"Breadcrumb trail item type.","enum":["search","filter","advisor","unspecified"]},"value":{"type":"object","description":"Contains information corresponding to the item type (for example, contains the search term for the search type)."}}},"Campaign":{"required":["advisorTree","category","flavour"],"type":"object","properties":{"activeQuestions":{"type":"array","description":"The currently active questions to be shown to the user. These questions do not need to be the root questions, in case the user has already answered a question.","items":{"$ref":"#/components/schemas/Question"}},"ad":{"type":"boolean","description":"The setting which defines if this campaign is used as an ad."},"advisorTree":{"type":"array","description":"The advisor root questions associated with this campaign.","items":{"$ref":"#/components/schemas/Question"}},"category":{"type":"string","description":"The category of the campaign. May be empty."},"excludeProductsNotInMarkets":{"type":"boolean","description":"The setting which decides whether pushed products should be excluded if they are not mapped to any selected market."},"excludeProductsNotInRange":{"type":"boolean","description":"The setting which decides whether pushed products should be excluded if they are not close enough to the search location."},"feedbackTexts":{"type":"array","description":"The feedback text lines that will be displayed to the user.","items":{"$ref":"#/components/schemas/FeedbackText"}},"flavour":{"type":"string","description":"The kind of the campaign.","enum":["ADVISOR","REDIRECT","FEEDBACK","PRODUCT"]},"hits":{"type":"array","description":"The records associated with the campaign, if it should push products.","items":{"$ref":"#/components/schemas/RecordWithId"}},"id":{"type":"string","description":"The ID of the campaign."},"name":{"type":"string","description":"The name of the campaign."},"target":{"$ref":"#/components/schemas/Target"}}},"FeedbackText":{"required":["html","label","teaser"],"type":"object","properties":{"html":{"type":"boolean","description":"Set to true, if the text should be displayed as HTML."},"label":{"type":"string","description":"Describes where the text should be displayed."},"position":{"type":"integer","description":"The position the text should be displayed at if it is a teaser","format":"int32"},"teaser":{"type":"boolean","description":"Set to true, if the text is considered a teaser"},"text":{"type":"string","description":"The text to be shown to the user."}}},"RecordWithId":{"required":["id","masterValues","variantValues"],"type":"object","properties":{"id":{"type":"string","description":"The ID of the record."},"masterValues":{"type":"object","additionalProperties":{"type":"object","description":"Contains all fields in the record, with a string representation of the respective values."},"description":"Contains all fields in the record, with a string representation of the respective values."},"variantValues":{"type":"array","description":"Contains variants. The values are mapped from field names to the field value.","items":{"$ref":"#/components/schemas/VariantValues"}}}},"VariantValues":{"title":"VariantValues","type":"object","additionalProperties":{"type":"object"},"description":"Contains variants. The values are mapped from field names to the field value."},"Target":{"required":["destination"],"type":"object","properties":{"destination":{"type":"string","description":"The URL to which the user should be redirected."},"name":{"type":"string","description":"A name to identify the target URL."}},"description":"The redirect target."},"Facet":{"required":["associatedFieldName","detailedLinks","elements","filterStyle","selectedElements","selectionType","showPreviewImages"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"The name of the field that contains the values represented by this facet."},"decimalPlaces":{"type":"integer","description":"Specifies the amount of digits after the decimal separator for elements of slider facets.","format":"int32"},"detailedLinks":{"type":"integer","description":"Number of links to be displayed (for the selection menu).","format":"int32"},"elements":{"type":"array","description":"The elements shown in the filter.","items":{"$ref":"#/components/schemas/FacetElement"}},"filterStyle":{"type":"string","description":"The style in which the filter should be displayed.","enum":["DEFAULT","SLIDER","MULTISELECT","TREE"]},"name":{"type":"string","description":"Filter name that should be displayed to the user."},"selectedElements":{"type":"array","description":"The elements of the filter that are currently selected.","items":{"$ref":"#/components/schemas/FacetElement"}},"selectionType":{"type":"string","description":"Defines the way this filter behaves when elements are selected.","enum":["singleHideUnselected","singleShowUnselected","multiSelectOr","multiSelectAnd"]},"showPreviewImages":{"type":"boolean","description":"If true, preview images should be displayed to the user."},"type":{"type":"string","description":"The type of the filter elements.","enum":["FLOAT","INTEGER","MULTI","TEXT","CATEGORY_PATH","BOOLEAN","DATE","GTIN","ALPHANUMERIC","PROPERTY","GEO"]},"unit":{"type":"string","description":"The units to be shown, if filter elements represent (for instance) length, or weight."}}},"FacetElement":{"required":["clusterLevel","selected"],"type":"object","properties":{"absoluteMaxValue":{"type":"number","description":"The absolute maximum value for the overall slider range.","format":"double"},"absoluteMinValue":{"type":"number","description":"The absolute minimum value for the overall slider range.","format":"double"},"clusterLevel":{"type":"integer","description":"Level in the cluster hierarchy. Corresponding subcategories have a higher (deeper) level.","format":"int32"},"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"previewImageURL":{"type":"string","description":"URL to the preview image to be displayed with the element."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, IMPLICIT, if the selection is implicit, IRRELEVANT means, that the element has been selected by the user, but does not match any record of the search result, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]},"selectedMaxValue":{"type":"number","description":"The maximum value of the currently selected slider range.","format":"double"},"selectedMinValue":{"type":"number","description":"The minimum value of the currently selected slider range.","format":"double"},"showDistance":{"type":"boolean","description":"If 'true', the distance should be added to the element name label by frontend."},"text":{"type":"string","description":"The text to be displayed to the user."},"totalHits":{"type":"integer","description":"The number of products that the search result should contain when this facet element is selected.","format":"int32"}}},"Geo":{"required":["markets","selectedMarkets","showDistance","showMarkets"],"type":"object","properties":{"markets":{"type":"array","description":"The unselected markets","items":{"$ref":"#/components/schemas/Market"}},"selectedMarkets":{"type":"array","description":"The selected markets","items":{"$ref":"#/components/schemas/Market"}},"showDistance":{"type":"boolean","description":"Should show the distance attached to the markets."},"showMarkets":{"type":"boolean","description":"Should show the list of all existing markets."}},"description":"Contains the selected and unselected markets."},"Market":{"type":"object","properties":{"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"hasProducts":{"type":"boolean","description":"True, if the market has at least one product mapped to it in the current search result, otherwise false."},"id":{"type":"string","description":"Id of the market"},"location":{"$ref":"#/components/schemas/Location"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]}}},"SearchRecord":{"required":["foundWords","id","masterValues","position","score","variantValues"],"type":"object","properties":{"foundWords":{"type":"array","description":"The words that caused this record to be part of the result.","items":{"type":"string"}},"id":{"type":"string","description":"The ID of the record."},"masterValues":{"type":"object","additionalProperties":{"type":"object","description":"Contains all fields in the record, with a string representation of the respective values."},"description":"Contains all fields in the record, with a string representation of the respective values."},"position":{"type":"integer","description":"The position of the record in the search results (starting with 0).","format":"int32"},"score":{"type":"number","description":"Defines how well the record matches the search term.","format":"float"},"variantValues":{"type":"array","description":"Contains variants. The values are mapped from field names to the field value.","items":{"$ref":"#/components/schemas/VariantValues"}}}},"Paging":{"required":["currentPage","defaultHitsPerPage","hitsPerPage","nextLink","pageCount","previousLink"],"type":"object","properties":{"currentPage":{"type":"integer","description":"The number of the currently selected page.","format":"int32"},"defaultHitsPerPage":{"type":"integer","description":"The default number of products shown per page, as defined in the configuration.","format":"int32"},"hitsPerPage":{"type":"integer","description":"The number of products shown per page (the last page may contain fewer products).","format":"int32"},"nextLink":{"$ref":"#/components/schemas/PageLink"},"pageCount":{"type":"integer","description":"The total number of pages for this search result.","format":"int32"},"previousLink":{"$ref":"#/components/schemas/PageLink"}},"description":"Defines the paging properties."},"PageLink":{"required":["currentPage","number"],"type":"object","properties":{"currentPage":{"type":"boolean","description":"True, when this page is the current page."},"number":{"type":"integer","description":"Number of the page in the search result.","format":"int32"},"searchParams":{"$ref":"#/components/schemas/SearchParams"}},"description":"Defines the page to be requested when the 'next page' link is selected."},"SingleWordSearchResult":{"required":["previewRecords","totalHits","word"],"type":"object","properties":{"previewRecords":{"type":"array","description":"The first few products of the search result, to be used as a preview.","items":{"$ref":"#/components/schemas/SearchRecord"}},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"totalHits":{"type":"integer","description":"The total number of items to be expected in this search result.","format":"int32"},"word":{"type":"string","description":"The term that was searched for."}}},"DescribedSortItem":{"required":["description","name","order","searchParams","selected"],"type":"object","properties":{"description":{"type":"string","description":"The sorting option description, which should be displayed frontend."},"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction.","enum":["asc","desc"]},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"boolean","description":"If true, the sorting is applied to the current search result."}}},"ApiError":{"required":["error"],"type":"object","properties":{"error":{"type":"string","description":"A short error description"},"errorDescription":{"type":"string","description":"A description of the error cause"},"stacktrace":{"type":"array","description":"The stacktrace from the error (will only be transmitted when the query parameter verbose=true was added to the request)","items":{"type":"string"}}},"description":"Contains information which will be returned when an error occurs."}}},"paths":{"/rest/v5/navigation/{channel}":{"post":{"tags":["search"],"summary":"Navigation with POST","description":"<b>Required Roles</b>: <em>ApiPublicQueries</em>","operationId":"navigationWithPOST","parameters":[{"name":"channel","in":"path","description":"The channel","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NavigationRequest"}}},"required":true},"responses":{"200":{"description":"OK","headers":{"X-FF-Timeout":{"description":"If true, the search is timed out. This can result in a response with 0 hits depending on when the timeout occurred.","style":"simple","schema":{"type":"boolean"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}
```

## Search

> \<b>Required Roles\</b>: \<em>ApiPublicQueries\</em>

```json
{"openapi":"3.0.1","info":{"title":"FactFinder REST API","version":"v5"},"tags":[{"name":"search","description":"Operations for search and suggest"}],"servers":[{"url":"https://vector-demo.fact-finder.de/fact-finder/","description":"Generated server url"}],"security":[{"basicAuth":[]},{"oAuth2":["public_queries"]},{"apiKey":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"},"oAuth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"oauth/token","scopes":{"public_queries":"","import":"","database":"","config":"","analytics":"","jobs":"","monitor":"","manage":"","users":""}}}},"apiKey":{"type":"apiKey","name":"X-FF-API-Key","in":"header"}},"schemas":{"Result":{"required":["answers","articleNumberSearch","breadCrumbTrail","campaigns","exactSearchMode","facets","fieldRoles","filters","hits","resultType","scoreFirstHit","scoreLastHit","searchControlParams","singleWordResults","sortItems","splitDocuments","timedOut","tookAtlasAi","tookGPTSynonyms","tookLoop54","tookTotal","tookVector","tookWorldmatch","totalHits"],"type":"object","properties":{"answers":{"type":"array","description":"The selected answers of this result.","items":{"$ref":"#/components/schemas/Answer"}},"articleNumberSearch":{"type":"boolean","description":"Set to true when an article number search was performed."},"breadCrumbTrail":{"type":"array","description":"Describes the actions that lead to the current result. This may be used to return to an intermediate search result.","items":{"$ref":"#/components/schemas/BreadCrumbTrailItem"}},"campaigns":{"type":"array","description":"Contains the active campaigns for this result.","items":{"$ref":"#/components/schemas/Campaign"}},"exactSearchMode":{"type":"string","description":"The mode of the exact search that was applied.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"facets":{"type":"array","description":"The ASN filters (for after search navigation).","items":{"$ref":"#/components/schemas/Facet"}},"fieldRoles":{"type":"object","additionalProperties":{"type":"string","description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"filters":{"type":"array","description":"The filter applied for this result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Request linking param for follow-up search requests. Can improve request performance."},"geo":{"$ref":"#/components/schemas/Geo"},"hits":{"type":"array","description":"The relevant products.","items":{"$ref":"#/components/schemas/SearchRecord"}},"paging":{"$ref":"#/components/schemas/Paging"},"resultType":{"type":"string","description":"The type of the search result.","enum":["KEYWORD","VECTOR","HYBRID","FALLBACK"]},"scoreFirstHit":{"type":"number","description":"The score of the best match in the search result.","format":"double"},"scoreLastHit":{"type":"number","description":"The score of the worst match in the search result.","format":"double"},"searchControlParams":{"$ref":"#/components/schemas/SearchControlParams"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"singleWordResults":{"type":"array","description":"Contains the result from the Single word search.","items":{"$ref":"#/components/schemas/SingleWordSearchResult"}},"sortItems":{"type":"array","description":"Contains the available sortings.","items":{"$ref":"#/components/schemas/DescribedSortItem"}},"splitDocuments":{"type":"boolean","description":"If true, this result was created with variants split into separate documents"},"timedOut":{"type":"boolean","description":"If true, this search took longer than the timeout currently defined. Therefore, the results may not contain all relevant products."},"tookAtlasAi":{"minimum":0,"type":"integer","description":"The time required for Atlas AI searches (in ms).","format":"int64"},"tookGPTSynonyms":{"minimum":0,"type":"integer","description":"The time required for live GPT synonym generation (in ms).","format":"int64"},"tookLoop54":{"minimum":0,"type":"integer","description":"The time required for loop54 personalization (in ms).","format":"int64"},"tookTotal":{"minimum":0,"type":"integer","description":"The time required to produce the results in the framework (in ms).","format":"int64"},"tookVector":{"minimum":0,"type":"integer","description":"The time required for vector search (in ms).","format":"int64"},"tookWorldmatch":{"minimum":0,"type":"integer","description":"The time required to produce the results in the core (in ms).","format":"int64"},"totalHits":{"minimum":0,"type":"integer","description":"Total number of items in the search result.","format":"int32"}}},"Answer":{"required":["id","searchParams","selected","text"],"type":"object","properties":{"id":{"type":"string","description":"ID of this answer."},"questions":{"type":"array","description":"The questions to be shown when the answer is selected.","items":{"$ref":"#/components/schemas/Question"}},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"boolean","description":"True if the answer has been selected."},"text":{"type":"string","description":"Text, shown when the answer is active."}}},"Question":{"required":["answers","id","text","visible"],"type":"object","properties":{"answers":{"type":"array","description":"The answers associated to this question.","items":{"$ref":"#/components/schemas/Answer"}},"id":{"type":"string","description":"The ID of the question."},"text":{"type":"string","description":"The text to be shown to the user."},"visible":{"type":"boolean","description":"Set to true when the question is visible."}}},"SearchParams":{"required":["query"],"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"articleNumberSearch":{"type":"string","description":"Specifies if the search term should be interpreted as article number. Defaults to DETECT.","enum":["DETECT","ALWAYS","NEVER"]},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"exactSearchMode":{"type":"string","description":"Specifies whether the search term should be considered for the exact search, and how. Defaults to the mode that is configured for the channel.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"query":{"type":"string","description":"The search term."},"searchField":{"type":"string","description":"If set, the search term will be looked for only in the given field. Otherwise all searchable fields will be considered (for article number searches, all fields marked as containing article numbers)."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},"description":"Defines the search that should be executed when the element is clicked."},"AdvisorCampaignStatusHolder":{"required":["id"],"type":"object","properties":{"answerPath":{"type":"string","description":"The currently active path within the advisor tree, which should end at an answer: _QuestionID_AnswerID_QuestionID_AnswerID. If empty or null, the root questions will be shown."},"id":{"type":"string","description":"ID of the advisor campaign."}},"description":"Describes the advisor campaign that is currently active."},"CustomParameter":{"required":["cacheIrrelevant","name","values"],"type":"object","properties":{"cacheIrrelevant":{"type":"boolean","description":"When set to true, the custom parameter will not influence caching."},"name":{"type":"string","description":"The parameter name."},"values":{"type":"array","description":"The parameter values.","items":{"type":"string"}}}},"Filter":{"required":["name","substring","values"],"type":"object","properties":{"filterWarning":{"type":"string","description":"Contains warning about invalid filters (e.g. non-existent field or non-existent value).","enum":["NON_EXISTING_FIELD","NON_EXISTING_FIELD_VALUE"]},"name":{"type":"string","description":"The name of the filter."},"substring":{"type":"boolean","description":"If true, filter values will be applied as 'contains' instead of 'equals'."},"values":{"type":"array","description":"Filter values.","items":{"$ref":"#/components/schemas/FilterValue"}}}},"FilterValue":{"required":["exclude","type","value"],"type":"object","properties":{"exclude":{"type":"boolean","description":"When set to true, the filter will match when the record value does not equal the filter value."},"type":{"type":"string","description":"Describes how this filter value should interact with the corresponding filter field.","enum":["or","and"]},"value":{"$ref":"#/components/schemas/FilterValueInput"}}},"FilterValueInput":{"description":"The value to which the record values will be compared.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"Location":{"required":["latitude","longitude"],"type":"object","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},"description":"The location of the market."},"SortItem":{"required":["name","order"],"type":"object","properties":{"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction (ascending, descending).","enum":["asc","desc"]}}},"BreadCrumbTrailItem":{"required":["type"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"Contains the name of the field on which the filter operates. Used for filter type items."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"text":{"type":"string","description":"The text to be displayed to the user."},"type":{"type":"string","description":"Breadcrumb trail item type.","enum":["search","filter","advisor","unspecified"]},"value":{"type":"object","description":"Contains information corresponding to the item type (for example, contains the search term for the search type)."}}},"Campaign":{"required":["advisorTree","category","flavour"],"type":"object","properties":{"activeQuestions":{"type":"array","description":"The currently active questions to be shown to the user. These questions do not need to be the root questions, in case the user has already answered a question.","items":{"$ref":"#/components/schemas/Question"}},"ad":{"type":"boolean","description":"The setting which defines if this campaign is used as an ad."},"advisorTree":{"type":"array","description":"The advisor root questions associated with this campaign.","items":{"$ref":"#/components/schemas/Question"}},"category":{"type":"string","description":"The category of the campaign. May be empty."},"excludeProductsNotInMarkets":{"type":"boolean","description":"The setting which decides whether pushed products should be excluded if they are not mapped to any selected market."},"excludeProductsNotInRange":{"type":"boolean","description":"The setting which decides whether pushed products should be excluded if they are not close enough to the search location."},"feedbackTexts":{"type":"array","description":"The feedback text lines that will be displayed to the user.","items":{"$ref":"#/components/schemas/FeedbackText"}},"flavour":{"type":"string","description":"The kind of the campaign.","enum":["ADVISOR","REDIRECT","FEEDBACK","PRODUCT"]},"hits":{"type":"array","description":"The records associated with the campaign, if it should push products.","items":{"$ref":"#/components/schemas/RecordWithId"}},"id":{"type":"string","description":"The ID of the campaign."},"name":{"type":"string","description":"The name of the campaign."},"target":{"$ref":"#/components/schemas/Target"}}},"FeedbackText":{"required":["html","label","teaser"],"type":"object","properties":{"html":{"type":"boolean","description":"Set to true, if the text should be displayed as HTML."},"label":{"type":"string","description":"Describes where the text should be displayed."},"position":{"type":"integer","description":"The position the text should be displayed at if it is a teaser","format":"int32"},"teaser":{"type":"boolean","description":"Set to true, if the text is considered a teaser"},"text":{"type":"string","description":"The text to be shown to the user."}}},"RecordWithId":{"required":["id","masterValues","variantValues"],"type":"object","properties":{"id":{"type":"string","description":"The ID of the record."},"masterValues":{"type":"object","additionalProperties":{"type":"object","description":"Contains all fields in the record, with a string representation of the respective values."},"description":"Contains all fields in the record, with a string representation of the respective values."},"variantValues":{"type":"array","description":"Contains variants. The values are mapped from field names to the field value.","items":{"$ref":"#/components/schemas/VariantValues"}}}},"VariantValues":{"title":"VariantValues","type":"object","additionalProperties":{"type":"object"},"description":"Contains variants. The values are mapped from field names to the field value."},"Target":{"required":["destination"],"type":"object","properties":{"destination":{"type":"string","description":"The URL to which the user should be redirected."},"name":{"type":"string","description":"A name to identify the target URL."}},"description":"The redirect target."},"Facet":{"required":["associatedFieldName","detailedLinks","elements","filterStyle","selectedElements","selectionType","showPreviewImages"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"The name of the field that contains the values represented by this facet."},"decimalPlaces":{"type":"integer","description":"Specifies the amount of digits after the decimal separator for elements of slider facets.","format":"int32"},"detailedLinks":{"type":"integer","description":"Number of links to be displayed (for the selection menu).","format":"int32"},"elements":{"type":"array","description":"The elements shown in the filter.","items":{"$ref":"#/components/schemas/FacetElement"}},"filterStyle":{"type":"string","description":"The style in which the filter should be displayed.","enum":["DEFAULT","SLIDER","MULTISELECT","TREE"]},"name":{"type":"string","description":"Filter name that should be displayed to the user."},"selectedElements":{"type":"array","description":"The elements of the filter that are currently selected.","items":{"$ref":"#/components/schemas/FacetElement"}},"selectionType":{"type":"string","description":"Defines the way this filter behaves when elements are selected.","enum":["singleHideUnselected","singleShowUnselected","multiSelectOr","multiSelectAnd"]},"showPreviewImages":{"type":"boolean","description":"If true, preview images should be displayed to the user."},"type":{"type":"string","description":"The type of the filter elements.","enum":["FLOAT","INTEGER","MULTI","TEXT","CATEGORY_PATH","BOOLEAN","DATE","GTIN","ALPHANUMERIC","PROPERTY","GEO"]},"unit":{"type":"string","description":"The units to be shown, if filter elements represent (for instance) length, or weight."}}},"FacetElement":{"required":["clusterLevel","selected"],"type":"object","properties":{"absoluteMaxValue":{"type":"number","description":"The absolute maximum value for the overall slider range.","format":"double"},"absoluteMinValue":{"type":"number","description":"The absolute minimum value for the overall slider range.","format":"double"},"clusterLevel":{"type":"integer","description":"Level in the cluster hierarchy. Corresponding subcategories have a higher (deeper) level.","format":"int32"},"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"previewImageURL":{"type":"string","description":"URL to the preview image to be displayed with the element."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, IMPLICIT, if the selection is implicit, IRRELEVANT means, that the element has been selected by the user, but does not match any record of the search result, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]},"selectedMaxValue":{"type":"number","description":"The maximum value of the currently selected slider range.","format":"double"},"selectedMinValue":{"type":"number","description":"The minimum value of the currently selected slider range.","format":"double"},"showDistance":{"type":"boolean","description":"If 'true', the distance should be added to the element name label by frontend."},"text":{"type":"string","description":"The text to be displayed to the user."},"totalHits":{"type":"integer","description":"The number of products that the search result should contain when this facet element is selected.","format":"int32"}}},"Geo":{"required":["markets","selectedMarkets","showDistance","showMarkets"],"type":"object","properties":{"markets":{"type":"array","description":"The unselected markets","items":{"$ref":"#/components/schemas/Market"}},"selectedMarkets":{"type":"array","description":"The selected markets","items":{"$ref":"#/components/schemas/Market"}},"showDistance":{"type":"boolean","description":"Should show the distance attached to the markets."},"showMarkets":{"type":"boolean","description":"Should show the list of all existing markets."}},"description":"Contains the selected and unselected markets."},"Market":{"type":"object","properties":{"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"hasProducts":{"type":"boolean","description":"True, if the market has at least one product mapped to it in the current search result, otherwise false."},"id":{"type":"string","description":"Id of the market"},"location":{"$ref":"#/components/schemas/Location"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]}}},"SearchRecord":{"required":["foundWords","id","masterValues","position","score","variantValues"],"type":"object","properties":{"foundWords":{"type":"array","description":"The words that caused this record to be part of the result.","items":{"type":"string"}},"id":{"type":"string","description":"The ID of the record."},"masterValues":{"type":"object","additionalProperties":{"type":"object","description":"Contains all fields in the record, with a string representation of the respective values."},"description":"Contains all fields in the record, with a string representation of the respective values."},"position":{"type":"integer","description":"The position of the record in the search results (starting with 0).","format":"int32"},"score":{"type":"number","description":"Defines how well the record matches the search term.","format":"float"},"variantValues":{"type":"array","description":"Contains variants. The values are mapped from field names to the field value.","items":{"$ref":"#/components/schemas/VariantValues"}}}},"Paging":{"required":["currentPage","defaultHitsPerPage","hitsPerPage","nextLink","pageCount","previousLink"],"type":"object","properties":{"currentPage":{"type":"integer","description":"The number of the currently selected page.","format":"int32"},"defaultHitsPerPage":{"type":"integer","description":"The default number of products shown per page, as defined in the configuration.","format":"int32"},"hitsPerPage":{"type":"integer","description":"The number of products shown per page (the last page may contain fewer products).","format":"int32"},"nextLink":{"$ref":"#/components/schemas/PageLink"},"pageCount":{"type":"integer","description":"The total number of pages for this search result.","format":"int32"},"previousLink":{"$ref":"#/components/schemas/PageLink"}},"description":"Defines the paging properties."},"PageLink":{"required":["currentPage","number"],"type":"object","properties":{"currentPage":{"type":"boolean","description":"True, when this page is the current page."},"number":{"type":"integer","description":"Number of the page in the search result.","format":"int32"},"searchParams":{"$ref":"#/components/schemas/SearchParams"}},"description":"Defines the page to be requested when the 'next page' link is selected."},"SearchControlParams":{"type":"object","properties":{"deduplicationField":{"type":"string","description":"Specifies on which field variants should be deduplicated."},"idsOnly":{"type":"boolean","description":"If true, the returned records will contain only record IDs."},"useAbTest":{"type":"boolean","description":"If true, abTest features will be active."},"useAsn":{"type":"boolean","description":"If true, filters should be generated for the result."},"useAso":{"type":"boolean","description":"If true, automatic search optimization will be used."},"useAtlasAi":{"type":"boolean","description":"If true, Atlas AI will be used."},"useCache":{"type":"boolean","description":"If true, the search result will be returned from cache memory, if a possible matching result exists."},"useCampaigns":{"type":"boolean","description":"If true, campaigns corresponding to this search result will be returned."},"useDeduplication":{"type":"boolean","description":"If true, the configured deduplication of variants will be used."},"useFoundWords":{"type":"boolean","description":"If true, the words that led to the records in the search results will be determined; this may require a large amount of processing time."},"useGeo":{"type":"boolean","description":"If true, geoSearch features will be active."},"usePersonalization":{"type":"boolean","description":"If true, the relevant products in the result will be personalized."},"useRanking":{"type":"boolean","description":"If true, ranking will be applied."},"useSearch":{"type":"boolean","description":"If true, search will be executed for the query."},"useSemanticEnhancer":{"type":"boolean","description":"If true, the semantic enhancer will be used."},"useVectorSearchMode":{"type":"string","description":"Specifies the integration of keyword search and vector search.","enum":["DISABLED","FALLBACK","ONLY","HYBRID"]}},"description":"The search control parameters used to generate this search result."},"SingleWordSearchResult":{"required":["previewRecords","totalHits","word"],"type":"object","properties":{"previewRecords":{"type":"array","description":"The first few products of the search result, to be used as a preview.","items":{"$ref":"#/components/schemas/SearchRecord"}},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"totalHits":{"type":"integer","description":"The total number of items to be expected in this search result.","format":"int32"},"word":{"type":"string","description":"The term that was searched for."}}},"DescribedSortItem":{"required":["description","name","order","searchParams","selected"],"type":"object","properties":{"description":{"type":"string","description":"The sorting option description, which should be displayed frontend."},"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction.","enum":["asc","desc"]},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"boolean","description":"If true, the sorting is applied to the current search result."}}},"ApiError":{"required":["error"],"type":"object","properties":{"error":{"type":"string","description":"A short error description"},"errorDescription":{"type":"string","description":"A description of the error cause"},"stacktrace":{"type":"array","description":"The stacktrace from the error (will only be transmitted when the query parameter verbose=true was added to the request)","items":{"type":"string"}}},"description":"Contains information which will be returned when an error occurs."}}},"paths":{"/rest/v5/search/{channel}":{"get":{"tags":["search"],"summary":"Search","description":"<b>Required Roles</b>: <em>ApiPublicQueries</em>","operationId":"searchWithGET","parameters":[{"name":"advisorStatus","in":"query","description":"For specifying the current campaign id and answer path; format: campaignId-answerPath; example = '4-_0_1'","required":false,"schema":{"maxLength":2147483647,"minLength":1,"type":"string","description":"For specifying the current campaign id and answer path; format: campaignId-answerPath; example = '4-_0_1'"}},{"name":"articleNumberSearch","in":"query","description":"Specifies if the query should be interpreted as article number","required":false,"schema":{"type":"string","description":"Specifies if the query should be interpreted as article number","enum":["DETECT","ALWAYS","NEVER"]}},{"name":"cacheIrrelevant","in":"query","description":"Flag parameters as cache irrelevant","required":false,"schema":{"type":"array","description":"Flag parameters as cache irrelevant","items":{"type":"string"}}},{"name":"channel","in":"path","description":"The channel","required":true,"schema":{"type":"string"}},{"name":"deduplicationField","in":"query","description":"Specifies on which field variants should be deduplicated.","required":false,"schema":{"type":"string","description":"Specifies on which field variants should be deduplicated."}},{"name":"exactSearchMode","in":"query","description":"Specifies if (and how) the query should be used for exact-value look-ups.","required":false,"schema":{"type":"string","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]}},{"name":"excludeProductsNotInRange","in":"query","description":"Use this parameter to override the geo setting \"exclude products not in range\" for this request.","required":false,"schema":{"type":"boolean","description":"Use this parameter to override the geo setting \"exclude products not in range\" for this request."}},{"name":"filter","in":"query","description":"Filter for the whole field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","required":false,"schema":{"type":"array","description":"Filter for the whole field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","items":{"type":"string"}}},{"name":"followSearch","in":"query","description":"Optional request linking param from a previous search result or search param object. Can improve request performance.","required":false,"schema":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."}},{"name":"hitsPerPage","in":"query","description":"In the FactFinder Management Interface you can define how many results will be returned on a page by default. If you prefer another number, you can set it with this parameter. Maximum of 100000 hits per page.","required":false,"schema":{"maximum":100000,"minimum":0,"type":"integer","description":"In the FactFinder Management Interface you can define how many results will be returned on a page by default. If you prefer another number, you can set it with this parameter. Maximum of 100000 hits per page.","format":"int32"}},{"name":"idsOnly","in":"query","description":"If true, the returned records will contain only record IDs.","required":false,"schema":{"type":"boolean","description":"If true, the returned records will contain only record IDs."}},{"name":"latitude","in":"query","description":"The latitude coordinate of the location.","required":false,"schema":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"}},{"name":"longitude","in":"query","description":"The longitude coordinate of the location.","required":false,"schema":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},{"name":"marketId","in":"query","description":"Only show products that have values for these market IDs.","required":false,"schema":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}}},{"name":"maxCountVariants","in":"query","description":"The maximum number of variants to return for every record","required":false,"schema":{"type":"integer","description":"The maximum number of variants to return for every record","format":"int32"}},{"name":"maxDistance","in":"query","description":"Use this parameter to override the geo setting \"maximum distance\" for this request.","required":false,"schema":{"minimum":1,"type":"number","description":"Use this parameter to override the geo setting \"maximum distance\" for this request.","format":"double"}},{"name":"page","in":"query","description":"If a search result contains many results these will be divided into pages. This limits the amount of data that has to be sent in one go. You can indicate which page should be returned. Page numbering starts at 1 and ends at 1.000.000.","required":false,"schema":{"maximum":1000000,"minimum":1,"type":"integer","description":"If a search result contains many results these will be divided into pages. This limits the amount of data that has to be sent in one go. You can indicate which page should be returned. Page numbering starts at 1 and ends at 1.000.000.","format":"int32"}},{"name":"purchaserId","in":"query","description":"Use this parameter to pass the purchaser ID. This ID is only needed, if the 'Customer-Specific Info' module is active. Otherwise it will be ignored.","required":false,"schema":{"maxLength":2147483647,"minLength":1,"type":"string","description":"Use this parameter to pass the purchaser ID. This ID is only needed, if the 'Customer-Specific Info' module is active. Otherwise it will be ignored."}},{"name":"query","in":"query","description":"The search term","required":true,"schema":{"type":"string","description":"The search term"}},{"name":"queryFromSuggest","in":"query","description":"This parameter indicates that the FactFinder query was triggered through a selection from the suggestion list.","schema":{"type":"boolean"}},{"name":"searchField","in":"query","description":"Normally FactFinder searches all fields defined as searchable. However it is possible to search only one specific field as well.","required":false,"schema":{"type":"string","description":"Normally FactFinder searches all fields defined as searchable. However it is possible to search only one specific field as well."}},{"name":"showMarkets","in":"query","description":"Specifies whether the list of all existing markets and their distance to the search location should be included in the response. By default, the GEO setting \"showMarkets\" is applied.","required":false,"schema":{"type":"boolean","description":"Specifies whether the list of all existing markets and their distance to the search location should be included in the response. By default, the GEO setting \"showMarkets\" is applied."}},{"name":"showPermutedSearchParams","in":"query","description":"Specifies whether to include search parameters in the response for facet and sort item elements. The flag is enabled by default.","required":false,"schema":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements. The flag is enabled by default."}},{"name":"sid","in":"query","description":"The session id","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort the result; use FieldName Relevancy to sort the relevancy; format: FieldName:order order must be either asc or desc; example Manufacturer:asc","required":false,"schema":{"type":"array","description":"Sort the result; use FieldName Relevancy to sort the relevancy; format: FieldName:order order must be either asc or desc; example Manufacturer:asc","items":{"type":"string"}}},{"name":"splitDocumentsAt","in":"query","description":"Threshold for variant splitting of documents.","required":false,"schema":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},{"name":"substringFilter","in":"query","description":"Filter for a sub string of the field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","required":false,"schema":{"type":"array","description":"Filter for a sub string of the field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","items":{"type":"string"}}},{"name":"useAbTest","in":"query","description":"If true, AbTest features will be active.","required":false,"schema":{"type":"boolean","description":"If true, AbTest features will be active."}},{"name":"useAsn","in":"query","description":"If true, filters should be generated for the result.","required":false,"schema":{"type":"boolean","description":"If true, filters should be generated for the result."}},{"name":"useAso","in":"query","description":"If true, automatic search optimization will be used.","required":false,"schema":{"type":"boolean","description":"If true, automatic search optimization will be used."}},{"name":"useAtlasAi","in":"query","description":"If true, Atlas AI will be used.","required":false,"schema":{"type":"boolean","description":"If true, Atlas AI will be used."}},{"name":"useCache","in":"query","description":"If true, the search result will be returned from cache memory, if a possible matching result exists.","required":false,"schema":{"type":"boolean","description":"If true, the search result will be returned from cache memory, if a possible matching result exists."}},{"name":"useCampaigns","in":"query","description":"If true, campaigns corresponding to this search result will be returned.","required":false,"schema":{"type":"boolean","description":"If true, campaigns corresponding to this search result will be returned."}},{"name":"useDeduplication","in":"query","description":"If true, the configured deduplication of variants will be used.","required":false,"schema":{"type":"boolean","description":"If true, the configured deduplication of variants will be used."}},{"name":"useFoundWords","in":"query","description":"If true, the words that led to the records in the search results will be determined; this may require a large amount of processing time.","required":false,"schema":{"type":"boolean","description":"If true, the words that led to the records in the search results will be determined; this may require a large amount of processing time."}},{"name":"useGeo","in":"query","description":"If true, geoSearch features will be active.","required":false,"schema":{"type":"boolean","description":"If true, geoSearch features will be active."}},{"name":"usePersonalization","in":"query","description":"If true, the relevant products in the result will be personalized.","required":false,"schema":{"type":"boolean","description":"If true, the relevant products in the result will be personalized."}},{"name":"useRanking","in":"query","description":"If true, ranking will be applied.","required":false,"schema":{"type":"boolean","description":"If true, ranking will be applied."}},{"name":"useSearch","in":"query","description":"If true, search will be executed for the query.","required":false,"schema":{"type":"boolean","description":"If true, search will be executed for the query."}},{"name":"useSemanticEnhancer","in":"query","description":"If true, the semantic enhancer will be used.","required":false,"schema":{"type":"boolean","description":"If true, the semantic enhancer will be used."}},{"name":"useVectorSearchMode","in":"query","description":"Specifies the integration of keyword search and vector search.","required":false,"schema":{"type":"string","description":"Specifies the integration of keyword search and vector search.","enum":["DISABLED","FALLBACK","ONLY","HYBRID"]}},{"name":"userId","in":"query","description":"The user id","required":false,"schema":{"type":"string"}},{"name":"userInput","in":"query","description":"Use this parameter to send the characters, the shop user entered until the search query was triggered.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"X-FF-Timeout":{"description":"If true, the search is timed out. This can result in a response with 0 hits depending on when the timeout occurred.","style":"simple","schema":{"type":"boolean"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}
```

## Search with POST

> \<b>Required Roles\</b>: \<em>ApiPublicQueries\</em>

```json
{"openapi":"3.0.1","info":{"title":"FactFinder REST API","version":"v5"},"tags":[{"name":"search","description":"Operations for search and suggest"}],"servers":[{"url":"https://vector-demo.fact-finder.de/fact-finder/","description":"Generated server url"}],"security":[{"basicAuth":[]},{"oAuth2":["public_queries"]},{"apiKey":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"},"oAuth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"oauth/token","scopes":{"public_queries":"","import":"","database":"","config":"","analytics":"","jobs":"","monitor":"","manage":"","users":""}}}},"apiKey":{"type":"apiKey","name":"X-FF-API-Key","in":"header"}},"schemas":{"SearchRequest":{"required":["params"],"type":"object","properties":{"params":{"$ref":"#/components/schemas/SearchParams"},"searchControlParams":{"$ref":"#/components/schemas/SearchControlParams"},"sid":{"type":"string","description":"The session ID of the user sending this search request."},"userId":{"type":"string","description":"The user ID of the user sending this search request."},"userInput":{"type":"string","description":"The search term entered by the user when a suggestion led to this search request."}}},"SearchParams":{"required":["query"],"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"articleNumberSearch":{"type":"string","description":"Specifies if the search term should be interpreted as article number. Defaults to DETECT.","enum":["DETECT","ALWAYS","NEVER"]},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"exactSearchMode":{"type":"string","description":"Specifies whether the search term should be considered for the exact search, and how. Defaults to the mode that is configured for the channel.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"query":{"type":"string","description":"The search term."},"searchField":{"type":"string","description":"If set, the search term will be looked for only in the given field. Otherwise all searchable fields will be considered (for article number searches, all fields marked as containing article numbers)."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},"description":"Defines the search that should be executed when the element is clicked."},"AdvisorCampaignStatusHolder":{"required":["id"],"type":"object","properties":{"answerPath":{"type":"string","description":"The currently active path within the advisor tree, which should end at an answer: _QuestionID_AnswerID_QuestionID_AnswerID. If empty or null, the root questions will be shown."},"id":{"type":"string","description":"ID of the advisor campaign."}},"description":"Describes the advisor campaign that is currently active."},"CustomParameter":{"required":["cacheIrrelevant","name","values"],"type":"object","properties":{"cacheIrrelevant":{"type":"boolean","description":"When set to true, the custom parameter will not influence caching."},"name":{"type":"string","description":"The parameter name."},"values":{"type":"array","description":"The parameter values.","items":{"type":"string"}}}},"Filter":{"required":["name","substring","values"],"type":"object","properties":{"filterWarning":{"type":"string","description":"Contains warning about invalid filters (e.g. non-existent field or non-existent value).","enum":["NON_EXISTING_FIELD","NON_EXISTING_FIELD_VALUE"]},"name":{"type":"string","description":"The name of the filter."},"substring":{"type":"boolean","description":"If true, filter values will be applied as 'contains' instead of 'equals'."},"values":{"type":"array","description":"Filter values.","items":{"$ref":"#/components/schemas/FilterValue"}}}},"FilterValue":{"required":["exclude","type","value"],"type":"object","properties":{"exclude":{"type":"boolean","description":"When set to true, the filter will match when the record value does not equal the filter value."},"type":{"type":"string","description":"Describes how this filter value should interact with the corresponding filter field.","enum":["or","and"]},"value":{"$ref":"#/components/schemas/FilterValueInput"}}},"FilterValueInput":{"description":"The value to which the record values will be compared.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"Location":{"required":["latitude","longitude"],"type":"object","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},"description":"The location of the market."},"SortItem":{"required":["name","order"],"type":"object","properties":{"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction (ascending, descending).","enum":["asc","desc"]}}},"SearchControlParams":{"type":"object","properties":{"deduplicationField":{"type":"string","description":"Specifies on which field variants should be deduplicated."},"idsOnly":{"type":"boolean","description":"If true, the returned records will contain only record IDs."},"useAbTest":{"type":"boolean","description":"If true, abTest features will be active."},"useAsn":{"type":"boolean","description":"If true, filters should be generated for the result."},"useAso":{"type":"boolean","description":"If true, automatic search optimization will be used."},"useAtlasAi":{"type":"boolean","description":"If true, Atlas AI will be used."},"useCache":{"type":"boolean","description":"If true, the search result will be returned from cache memory, if a possible matching result exists."},"useCampaigns":{"type":"boolean","description":"If true, campaigns corresponding to this search result will be returned."},"useDeduplication":{"type":"boolean","description":"If true, the configured deduplication of variants will be used."},"useFoundWords":{"type":"boolean","description":"If true, the words that led to the records in the search results will be determined; this may require a large amount of processing time."},"useGeo":{"type":"boolean","description":"If true, geoSearch features will be active."},"usePersonalization":{"type":"boolean","description":"If true, the relevant products in the result will be personalized."},"useRanking":{"type":"boolean","description":"If true, ranking will be applied."},"useSearch":{"type":"boolean","description":"If true, search will be executed for the query."},"useSemanticEnhancer":{"type":"boolean","description":"If true, the semantic enhancer will be used."},"useVectorSearchMode":{"type":"string","description":"Specifies the integration of keyword search and vector search.","enum":["DISABLED","FALLBACK","ONLY","HYBRID"]}},"description":"The search control parameters used to generate this search result."},"Result":{"required":["answers","articleNumberSearch","breadCrumbTrail","campaigns","exactSearchMode","facets","fieldRoles","filters","hits","resultType","scoreFirstHit","scoreLastHit","searchControlParams","singleWordResults","sortItems","splitDocuments","timedOut","tookAtlasAi","tookGPTSynonyms","tookLoop54","tookTotal","tookVector","tookWorldmatch","totalHits"],"type":"object","properties":{"answers":{"type":"array","description":"The selected answers of this result.","items":{"$ref":"#/components/schemas/Answer"}},"articleNumberSearch":{"type":"boolean","description":"Set to true when an article number search was performed."},"breadCrumbTrail":{"type":"array","description":"Describes the actions that lead to the current result. This may be used to return to an intermediate search result.","items":{"$ref":"#/components/schemas/BreadCrumbTrailItem"}},"campaigns":{"type":"array","description":"Contains the active campaigns for this result.","items":{"$ref":"#/components/schemas/Campaign"}},"exactSearchMode":{"type":"string","description":"The mode of the exact search that was applied.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"facets":{"type":"array","description":"The ASN filters (for after search navigation).","items":{"$ref":"#/components/schemas/Facet"}},"fieldRoles":{"type":"object","additionalProperties":{"type":"string","description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"filters":{"type":"array","description":"The filter applied for this result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Request linking param for follow-up search requests. Can improve request performance."},"geo":{"$ref":"#/components/schemas/Geo"},"hits":{"type":"array","description":"The relevant products.","items":{"$ref":"#/components/schemas/SearchRecord"}},"paging":{"$ref":"#/components/schemas/Paging"},"resultType":{"type":"string","description":"The type of the search result.","enum":["KEYWORD","VECTOR","HYBRID","FALLBACK"]},"scoreFirstHit":{"type":"number","description":"The score of the best match in the search result.","format":"double"},"scoreLastHit":{"type":"number","description":"The score of the worst match in the search result.","format":"double"},"searchControlParams":{"$ref":"#/components/schemas/SearchControlParams"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"singleWordResults":{"type":"array","description":"Contains the result from the Single word search.","items":{"$ref":"#/components/schemas/SingleWordSearchResult"}},"sortItems":{"type":"array","description":"Contains the available sortings.","items":{"$ref":"#/components/schemas/DescribedSortItem"}},"splitDocuments":{"type":"boolean","description":"If true, this result was created with variants split into separate documents"},"timedOut":{"type":"boolean","description":"If true, this search took longer than the timeout currently defined. Therefore, the results may not contain all relevant products."},"tookAtlasAi":{"minimum":0,"type":"integer","description":"The time required for Atlas AI searches (in ms).","format":"int64"},"tookGPTSynonyms":{"minimum":0,"type":"integer","description":"The time required for live GPT synonym generation (in ms).","format":"int64"},"tookLoop54":{"minimum":0,"type":"integer","description":"The time required for loop54 personalization (in ms).","format":"int64"},"tookTotal":{"minimum":0,"type":"integer","description":"The time required to produce the results in the framework (in ms).","format":"int64"},"tookVector":{"minimum":0,"type":"integer","description":"The time required for vector search (in ms).","format":"int64"},"tookWorldmatch":{"minimum":0,"type":"integer","description":"The time required to produce the results in the core (in ms).","format":"int64"},"totalHits":{"minimum":0,"type":"integer","description":"Total number of items in the search result.","format":"int32"}}},"Answer":{"required":["id","searchParams","selected","text"],"type":"object","properties":{"id":{"type":"string","description":"ID of this answer."},"questions":{"type":"array","description":"The questions to be shown when the answer is selected.","items":{"$ref":"#/components/schemas/Question"}},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"boolean","description":"True if the answer has been selected."},"text":{"type":"string","description":"Text, shown when the answer is active."}}},"Question":{"required":["answers","id","text","visible"],"type":"object","properties":{"answers":{"type":"array","description":"The answers associated to this question.","items":{"$ref":"#/components/schemas/Answer"}},"id":{"type":"string","description":"The ID of the question."},"text":{"type":"string","description":"The text to be shown to the user."},"visible":{"type":"boolean","description":"Set to true when the question is visible."}}},"BreadCrumbTrailItem":{"required":["type"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"Contains the name of the field on which the filter operates. Used for filter type items."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"text":{"type":"string","description":"The text to be displayed to the user."},"type":{"type":"string","description":"Breadcrumb trail item type.","enum":["search","filter","advisor","unspecified"]},"value":{"type":"object","description":"Contains information corresponding to the item type (for example, contains the search term for the search type)."}}},"Campaign":{"required":["advisorTree","category","flavour"],"type":"object","properties":{"activeQuestions":{"type":"array","description":"The currently active questions to be shown to the user. These questions do not need to be the root questions, in case the user has already answered a question.","items":{"$ref":"#/components/schemas/Question"}},"ad":{"type":"boolean","description":"The setting which defines if this campaign is used as an ad."},"advisorTree":{"type":"array","description":"The advisor root questions associated with this campaign.","items":{"$ref":"#/components/schemas/Question"}},"category":{"type":"string","description":"The category of the campaign. May be empty."},"excludeProductsNotInMarkets":{"type":"boolean","description":"The setting which decides whether pushed products should be excluded if they are not mapped to any selected market."},"excludeProductsNotInRange":{"type":"boolean","description":"The setting which decides whether pushed products should be excluded if they are not close enough to the search location."},"feedbackTexts":{"type":"array","description":"The feedback text lines that will be displayed to the user.","items":{"$ref":"#/components/schemas/FeedbackText"}},"flavour":{"type":"string","description":"The kind of the campaign.","enum":["ADVISOR","REDIRECT","FEEDBACK","PRODUCT"]},"hits":{"type":"array","description":"The records associated with the campaign, if it should push products.","items":{"$ref":"#/components/schemas/RecordWithId"}},"id":{"type":"string","description":"The ID of the campaign."},"name":{"type":"string","description":"The name of the campaign."},"target":{"$ref":"#/components/schemas/Target"}}},"FeedbackText":{"required":["html","label","teaser"],"type":"object","properties":{"html":{"type":"boolean","description":"Set to true, if the text should be displayed as HTML."},"label":{"type":"string","description":"Describes where the text should be displayed."},"position":{"type":"integer","description":"The position the text should be displayed at if it is a teaser","format":"int32"},"teaser":{"type":"boolean","description":"Set to true, if the text is considered a teaser"},"text":{"type":"string","description":"The text to be shown to the user."}}},"RecordWithId":{"required":["id","masterValues","variantValues"],"type":"object","properties":{"id":{"type":"string","description":"The ID of the record."},"masterValues":{"type":"object","additionalProperties":{"type":"object","description":"Contains all fields in the record, with a string representation of the respective values."},"description":"Contains all fields in the record, with a string representation of the respective values."},"variantValues":{"type":"array","description":"Contains variants. The values are mapped from field names to the field value.","items":{"$ref":"#/components/schemas/VariantValues"}}}},"VariantValues":{"title":"VariantValues","type":"object","additionalProperties":{"type":"object"},"description":"Contains variants. The values are mapped from field names to the field value."},"Target":{"required":["destination"],"type":"object","properties":{"destination":{"type":"string","description":"The URL to which the user should be redirected."},"name":{"type":"string","description":"A name to identify the target URL."}},"description":"The redirect target."},"Facet":{"required":["associatedFieldName","detailedLinks","elements","filterStyle","selectedElements","selectionType","showPreviewImages"],"type":"object","properties":{"associatedFieldName":{"type":"string","description":"The name of the field that contains the values represented by this facet."},"decimalPlaces":{"type":"integer","description":"Specifies the amount of digits after the decimal separator for elements of slider facets.","format":"int32"},"detailedLinks":{"type":"integer","description":"Number of links to be displayed (for the selection menu).","format":"int32"},"elements":{"type":"array","description":"The elements shown in the filter.","items":{"$ref":"#/components/schemas/FacetElement"}},"filterStyle":{"type":"string","description":"The style in which the filter should be displayed.","enum":["DEFAULT","SLIDER","MULTISELECT","TREE"]},"name":{"type":"string","description":"Filter name that should be displayed to the user."},"selectedElements":{"type":"array","description":"The elements of the filter that are currently selected.","items":{"$ref":"#/components/schemas/FacetElement"}},"selectionType":{"type":"string","description":"Defines the way this filter behaves when elements are selected.","enum":["singleHideUnselected","singleShowUnselected","multiSelectOr","multiSelectAnd"]},"showPreviewImages":{"type":"boolean","description":"If true, preview images should be displayed to the user."},"type":{"type":"string","description":"The type of the filter elements.","enum":["FLOAT","INTEGER","MULTI","TEXT","CATEGORY_PATH","BOOLEAN","DATE","GTIN","ALPHANUMERIC","PROPERTY","GEO"]},"unit":{"type":"string","description":"The units to be shown, if filter elements represent (for instance) length, or weight."}}},"FacetElement":{"required":["clusterLevel","selected"],"type":"object","properties":{"absoluteMaxValue":{"type":"number","description":"The absolute maximum value for the overall slider range.","format":"double"},"absoluteMinValue":{"type":"number","description":"The absolute minimum value for the overall slider range.","format":"double"},"clusterLevel":{"type":"integer","description":"Level in the cluster hierarchy. Corresponding subcategories have a higher (deeper) level.","format":"int32"},"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"previewImageURL":{"type":"string","description":"URL to the preview image to be displayed with the element."},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, IMPLICIT, if the selection is implicit, IRRELEVANT means, that the element has been selected by the user, but does not match any record of the search result, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]},"selectedMaxValue":{"type":"number","description":"The maximum value of the currently selected slider range.","format":"double"},"selectedMinValue":{"type":"number","description":"The minimum value of the currently selected slider range.","format":"double"},"showDistance":{"type":"boolean","description":"If 'true', the distance should be added to the element name label by frontend."},"text":{"type":"string","description":"The text to be displayed to the user."},"totalHits":{"type":"integer","description":"The number of products that the search result should contain when this facet element is selected.","format":"int32"}}},"Geo":{"required":["markets","selectedMarkets","showDistance","showMarkets"],"type":"object","properties":{"markets":{"type":"array","description":"The unselected markets","items":{"$ref":"#/components/schemas/Market"}},"selectedMarkets":{"type":"array","description":"The selected markets","items":{"$ref":"#/components/schemas/Market"}},"showDistance":{"type":"boolean","description":"Should show the distance attached to the markets."},"showMarkets":{"type":"boolean","description":"Should show the list of all existing markets."}},"description":"Contains the selected and unselected markets."},"Market":{"type":"object","properties":{"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"hasProducts":{"type":"boolean","description":"True, if the market has at least one product mapped to it in the current search result, otherwise false."},"id":{"type":"string","description":"Id of the market"},"location":{"$ref":"#/components/schemas/Location"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]}}},"SearchRecord":{"required":["foundWords","id","masterValues","position","score","variantValues"],"type":"object","properties":{"foundWords":{"type":"array","description":"The words that caused this record to be part of the result.","items":{"type":"string"}},"id":{"type":"string","description":"The ID of the record."},"masterValues":{"type":"object","additionalProperties":{"type":"object","description":"Contains all fields in the record, with a string representation of the respective values."},"description":"Contains all fields in the record, with a string representation of the respective values."},"position":{"type":"integer","description":"The position of the record in the search results (starting with 0).","format":"int32"},"score":{"type":"number","description":"Defines how well the record matches the search term.","format":"float"},"variantValues":{"type":"array","description":"Contains variants. The values are mapped from field names to the field value.","items":{"$ref":"#/components/schemas/VariantValues"}}}},"Paging":{"required":["currentPage","defaultHitsPerPage","hitsPerPage","nextLink","pageCount","previousLink"],"type":"object","properties":{"currentPage":{"type":"integer","description":"The number of the currently selected page.","format":"int32"},"defaultHitsPerPage":{"type":"integer","description":"The default number of products shown per page, as defined in the configuration.","format":"int32"},"hitsPerPage":{"type":"integer","description":"The number of products shown per page (the last page may contain fewer products).","format":"int32"},"nextLink":{"$ref":"#/components/schemas/PageLink"},"pageCount":{"type":"integer","description":"The total number of pages for this search result.","format":"int32"},"previousLink":{"$ref":"#/components/schemas/PageLink"}},"description":"Defines the paging properties."},"PageLink":{"required":["currentPage","number"],"type":"object","properties":{"currentPage":{"type":"boolean","description":"True, when this page is the current page."},"number":{"type":"integer","description":"Number of the page in the search result.","format":"int32"},"searchParams":{"$ref":"#/components/schemas/SearchParams"}},"description":"Defines the page to be requested when the 'next page' link is selected."},"SingleWordSearchResult":{"required":["previewRecords","totalHits","word"],"type":"object","properties":{"previewRecords":{"type":"array","description":"The first few products of the search result, to be used as a preview.","items":{"$ref":"#/components/schemas/SearchRecord"}},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"totalHits":{"type":"integer","description":"The total number of items to be expected in this search result.","format":"int32"},"word":{"type":"string","description":"The term that was searched for."}}},"DescribedSortItem":{"required":["description","name","order","searchParams","selected"],"type":"object","properties":{"description":{"type":"string","description":"The sorting option description, which should be displayed frontend."},"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction.","enum":["asc","desc"]},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"boolean","description":"If true, the sorting is applied to the current search result."}}},"ApiError":{"required":["error"],"type":"object","properties":{"error":{"type":"string","description":"A short error description"},"errorDescription":{"type":"string","description":"A description of the error cause"},"stacktrace":{"type":"array","description":"The stacktrace from the error (will only be transmitted when the query parameter verbose=true was added to the request)","items":{"type":"string"}}},"description":"Contains information which will be returned when an error occurs."}}},"paths":{"/rest/v5/search/{channel}":{"post":{"tags":["search"],"summary":"Search with POST","description":"<b>Required Roles</b>: <em>ApiPublicQueries</em>","operationId":"searchWithPOST","parameters":[{"name":"channel","in":"path","description":"The channel","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"OK","headers":{"X-FF-Timeout":{"description":"If true, the search is timed out. This can result in a response with 0 hits depending on when the timeout occurred.","style":"simple","schema":{"type":"boolean"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}
```

## Get suggestions

> \<b>Required Roles\</b>: \<em>ApiPublicQueries\</em>

```json
{"openapi":"3.0.1","info":{"title":"FactFinder REST API","version":"v5"},"tags":[{"name":"search","description":"Operations for search and suggest"}],"servers":[{"url":"https://vector-demo.fact-finder.de/fact-finder/","description":"Generated server url"}],"security":[{"basicAuth":[]},{"oAuth2":["public_queries"]},{"apiKey":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"},"oAuth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"oauth/token","scopes":{"public_queries":"","import":"","database":"","config":"","analytics":"","jobs":"","monitor":"","manage":"","users":""}}}},"apiKey":{"type":"apiKey","name":"X-FF-API-Key","in":"header"}},"schemas":{"SuggestionResult":{"required":["articleNumberSearchAllowed","fieldRoles","suggestions"],"type":"object","properties":{"articleNumberSearchAllowed":{"type":"boolean","description":"True, if the field with 'productNumber' field role provides a regex pattern."},"fieldRoles":{"type":"object","additionalProperties":{"type":"string","description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"geo":{"$ref":"#/components/schemas/Geo"},"splitDocuments":{"type":"boolean","description":"Indicator for document into variant splitting."},"suggestions":{"type":"array","description":"The requested suggestions.","items":{"$ref":"#/components/schemas/ResultSuggestion"}}},"description":"Contains a list of suggestions, the field role to field name mapping and the information if an article number search is possible."},"Geo":{"required":["markets","selectedMarkets","showDistance","showMarkets"],"type":"object","properties":{"markets":{"type":"array","description":"The unselected markets","items":{"$ref":"#/components/schemas/Market"}},"selectedMarkets":{"type":"array","description":"The selected markets","items":{"$ref":"#/components/schemas/Market"}},"showDistance":{"type":"boolean","description":"Should show the distance attached to the markets."},"showMarkets":{"type":"boolean","description":"Should show the list of all existing markets."}},"description":"Contains the selected and unselected markets."},"Market":{"type":"object","properties":{"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"hasProducts":{"type":"boolean","description":"True, if the market has at least one product mapped to it in the current search result, otherwise false."},"id":{"type":"string","description":"Id of the market"},"location":{"$ref":"#/components/schemas/Location"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]}}},"Location":{"required":["latitude","longitude"],"type":"object","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},"description":"The location of the market."},"SearchParams":{"required":["query"],"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"articleNumberSearch":{"type":"string","description":"Specifies if the search term should be interpreted as article number. Defaults to DETECT.","enum":["DETECT","ALWAYS","NEVER"]},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"exactSearchMode":{"type":"string","description":"Specifies whether the search term should be considered for the exact search, and how. Defaults to the mode that is configured for the channel.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"query":{"type":"string","description":"The search term."},"searchField":{"type":"string","description":"If set, the search term will be looked for only in the given field. Otherwise all searchable fields will be considered (for article number searches, all fields marked as containing article numbers)."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},"description":"Defines the search that should be executed when the element is clicked."},"AdvisorCampaignStatusHolder":{"required":["id"],"type":"object","properties":{"answerPath":{"type":"string","description":"The currently active path within the advisor tree, which should end at an answer: _QuestionID_AnswerID_QuestionID_AnswerID. If empty or null, the root questions will be shown."},"id":{"type":"string","description":"ID of the advisor campaign."}},"description":"Describes the advisor campaign that is currently active."},"CustomParameter":{"required":["cacheIrrelevant","name","values"],"type":"object","properties":{"cacheIrrelevant":{"type":"boolean","description":"When set to true, the custom parameter will not influence caching."},"name":{"type":"string","description":"The parameter name."},"values":{"type":"array","description":"The parameter values.","items":{"type":"string"}}}},"Filter":{"required":["name","substring","values"],"type":"object","properties":{"filterWarning":{"type":"string","description":"Contains warning about invalid filters (e.g. non-existent field or non-existent value).","enum":["NON_EXISTING_FIELD","NON_EXISTING_FIELD_VALUE"]},"name":{"type":"string","description":"The name of the filter."},"substring":{"type":"boolean","description":"If true, filter values will be applied as 'contains' instead of 'equals'."},"values":{"type":"array","description":"Filter values.","items":{"$ref":"#/components/schemas/FilterValue"}}}},"FilterValue":{"required":["exclude","type","value"],"type":"object","properties":{"exclude":{"type":"boolean","description":"When set to true, the filter will match when the record value does not equal the filter value."},"type":{"type":"string","description":"Describes how this filter value should interact with the corresponding filter field.","enum":["or","and"]},"value":{"$ref":"#/components/schemas/FilterValueInput"}}},"FilterValueInput":{"description":"The value to which the record values will be compared.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"SortItem":{"required":["name","order"],"type":"object","properties":{"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction (ascending, descending).","enum":["asc","desc"]}}},"ResultSuggestion":{"required":["attributes","hitCount","name","type"],"type":"object","properties":{"attributes":{"type":"object","additionalProperties":{"type":"object","description":"Contains additional information for the suggestion. Keys give the names of the attributes, with corresponding values."},"description":"Contains additional information for the suggestion. Keys give the names of the attributes, with corresponding values."},"hitCount":{"type":"integer","description":"The number of products that should be found when this suggestion is selected for a search.","format":"int32"},"image":{"type":"string","description":"The URL of the image to be displayed to the user."},"name":{"type":"string","description":"The name for the Suggest Entry that should be displayed to the user."},"score":{"type":"number","description":"Defines how well the suggestion matches the query.","format":"double"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"type":{"type":"string","description":"The suggestion type."}}},"ApiError":{"required":["error"],"type":"object","properties":{"error":{"type":"string","description":"A short error description"},"errorDescription":{"type":"string","description":"A description of the error cause"},"stacktrace":{"type":"array","description":"The stacktrace from the error (will only be transmitted when the query parameter verbose=true was added to the request)","items":{"type":"string"}}},"description":"Contains information which will be returned when an error occurs."}}},"paths":{"/rest/v5/suggest/{channel}":{"get":{"tags":["search"],"summary":"Get suggestions","description":"<b>Required Roles</b>: <em>ApiPublicQueries</em>","operationId":"getSuggestions","parameters":[{"name":"advisorStatus","in":"query","description":"For specifying the current campaign id and answer path; format: campaignId-answerPath; example = '4-_0_1'","required":false,"schema":{"maxLength":2147483647,"minLength":1,"type":"string","description":"For specifying the current campaign id and answer path; format: campaignId-answerPath; example = '4-_0_1'"}},{"name":"articleNumberSearch","in":"query","description":"Specifies if the query should be interpreted as article number","required":false,"schema":{"type":"string","description":"Specifies if the query should be interpreted as article number","enum":["DETECT","ALWAYS","NEVER"]}},{"name":"cacheIrrelevant","in":"query","description":"Flag parameters as cache irrelevant","required":false,"schema":{"type":"array","description":"Flag parameters as cache irrelevant","items":{"type":"string"}}},{"name":"channel","in":"path","description":"The channel","required":true,"schema":{"type":"string"}},{"name":"exactSearchMode","in":"query","description":"Specifies if (and how) the query should be used for exact-value look-ups.","required":false,"schema":{"type":"string","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]}},{"name":"excludeProductsNotInRange","in":"query","description":"Use this parameter to override the geo setting \"exclude products not in range\" for this request.","required":false,"schema":{"type":"boolean","description":"Use this parameter to override the geo setting \"exclude products not in range\" for this request."}},{"name":"filter","in":"query","description":"Filter for the whole field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","required":false,"schema":{"type":"array","description":"Filter for the whole field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","items":{"type":"string"}}},{"name":"followSearch","in":"query","description":"Optional request linking param from a previous search result or search param object. Can improve request performance.","required":false,"schema":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."}},{"name":"hitsPerPage","in":"query","description":"In the FactFinder Management Interface you can define how many results will be returned on a page by default. If you prefer another number, you can set it with this parameter. Maximum of 100000 hits per page.","required":false,"schema":{"maximum":100000,"minimum":0,"type":"integer","description":"In the FactFinder Management Interface you can define how many results will be returned on a page by default. If you prefer another number, you can set it with this parameter. Maximum of 100000 hits per page.","format":"int32"}},{"name":"includeMarketIdsForNonResultFields","in":"query","description":"Controls whether markets should be returned, even if no geo fields are configured as return attributes.","required":false,"schema":{"type":"boolean"}},{"name":"latitude","in":"query","description":"The latitude coordinate of the location.","required":false,"schema":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"}},{"name":"longitude","in":"query","description":"The longitude coordinate of the location.","required":false,"schema":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},{"name":"marketId","in":"query","description":"Only show products that have values for these market IDs.","required":false,"schema":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}}},{"name":"maxCountVariants","in":"query","description":"The maximum number of variants to return for every record","required":false,"schema":{"type":"integer","description":"The maximum number of variants to return for every record","format":"int32"}},{"name":"maxDistance","in":"query","description":"Use this parameter to override the geo setting \"maximum distance\" for this request.","required":false,"schema":{"minimum":1,"type":"number","description":"Use this parameter to override the geo setting \"maximum distance\" for this request.","format":"double"}},{"name":"page","in":"query","description":"If a search result contains many results these will be divided into pages. This limits the amount of data that has to be sent in one go. You can indicate which page should be returned. Page numbering starts at 1 and ends at 1.000.000.","required":false,"schema":{"maximum":1000000,"minimum":1,"type":"integer","description":"If a search result contains many results these will be divided into pages. This limits the amount of data that has to be sent in one go. You can indicate which page should be returned. Page numbering starts at 1 and ends at 1.000.000.","format":"int32"}},{"name":"purchaserId","in":"query","description":"Use this parameter to pass the purchaser ID. This ID is only needed, if the 'Customer-Specific Info' module is active. Otherwise it will be ignored.","required":false,"schema":{"maxLength":2147483647,"minLength":1,"type":"string","description":"Use this parameter to pass the purchaser ID. This ID is only needed, if the 'Customer-Specific Info' module is active. Otherwise it will be ignored."}},{"name":"query","in":"query","description":"The search term","required":true,"schema":{"type":"string","description":"The search term"}},{"name":"searchField","in":"query","description":"Normally FactFinder searches all fields defined as searchable. However it is possible to search only one specific field as well.","required":false,"schema":{"type":"string","description":"Normally FactFinder searches all fields defined as searchable. However it is possible to search only one specific field as well."}},{"name":"showMarkets","in":"query","description":"Specifies whether the list of all existing markets and their distance to the search location should be included in the response. By default, the GEO setting \"showMarkets\" is applied.","required":false,"schema":{"type":"boolean","description":"Specifies whether the list of all existing markets and their distance to the search location should be included in the response. By default, the GEO setting \"showMarkets\" is applied."}},{"name":"showPermutedSearchParams","in":"query","description":"Specifies whether to include search parameters in the response for facet and sort item elements. The flag is enabled by default.","required":false,"schema":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements. The flag is enabled by default."}},{"name":"sid","in":"query","description":"the session id from the user","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort the result; use FieldName Relevancy to sort the relevancy; format: FieldName:order order must be either asc or desc; example Manufacturer:asc","required":false,"schema":{"type":"array","description":"Sort the result; use FieldName Relevancy to sort the relevancy; format: FieldName:order order must be either asc or desc; example Manufacturer:asc","items":{"type":"string"}}},{"name":"splitDocumentsAt","in":"query","description":"Threshold for variant splitting of documents.","required":false,"schema":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},{"name":"substringFilter","in":"query","description":"Filter for a sub string of the field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","required":false,"schema":{"type":"array","description":"Filter for a sub string of the field value; a filter can have multiple values, the values can be separated with the following characters (they are configurable in the config.xml) 'and' = \\_\\_\\_ 'or' = ~~~ the filter value can be excluded with the prefix ! format: facetid:value; example Red~~~!Green = red or not green. If the filter name equals '*', the filter will be applied on any field; example: *:Red~~~Green. This filter type does not support the exclusion prefix. Be aware that filter values for category path filters have to be URL encoded, so a '100%' category path filter value would be '100%25'. It will be encoded a second time when used via 'GET', Swagger will do this second encoding automatically, so the URL contains '100%2525'. Numeric filters use standard mathematical interval notation, but only intervals that are closed on the left and open on the right are allowed inputs. So only intervals of the form [a,b), [a,) or [a,] are allowed. Square brackets mean that the value is included and round brackets mean that the value is not included. E.g. if you want to cover the range 20.00-49.99 please insert [20.00,50.00).","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestionResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}
```

## Get suggestions with POST

> \<b>Required Roles\</b>: \<em>ApiPublicQueries\</em>

```json
{"openapi":"3.0.1","info":{"title":"FactFinder REST API","version":"v5"},"tags":[{"name":"search","description":"Operations for search and suggest"}],"servers":[{"url":"https://vector-demo.fact-finder.de/fact-finder/","description":"Generated server url"}],"security":[{"basicAuth":[]},{"oAuth2":["public_queries"]},{"apiKey":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"},"oAuth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"oauth/token","scopes":{"public_queries":"","import":"","database":"","config":"","analytics":"","jobs":"","monitor":"","manage":"","users":""}}}},"apiKey":{"type":"apiKey","name":"X-FF-API-Key","in":"header"}},"schemas":{"SuggestParams":{"required":["query"],"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"articleNumberSearch":{"type":"string","description":"Specifies if the search term should be interpreted as article number. Defaults to DETECT.","enum":["DETECT","ALWAYS","NEVER"]},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"exactSearchMode":{"type":"string","description":"Specifies whether the search term should be considered for the exact search, and how. Defaults to the mode that is configured for the channel.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"includeMarketIdsForNonResultFields":{"type":"boolean","description":"Controls whether markets should be returned, even if no geo fields are configured as return attributes."},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"query":{"type":"string","description":"The search term."},"searchField":{"type":"string","description":"If set, the search term will be looked for only in the given field. Otherwise all searchable fields will be considered (for article number searches, all fields marked as containing article numbers)."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sid":{"type":"string","description":"The session id. Required for A/B testing."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}}},"AdvisorCampaignStatusHolder":{"required":["id"],"type":"object","properties":{"answerPath":{"type":"string","description":"The currently active path within the advisor tree, which should end at an answer: _QuestionID_AnswerID_QuestionID_AnswerID. If empty or null, the root questions will be shown."},"id":{"type":"string","description":"ID of the advisor campaign."}},"description":"Describes the advisor campaign that is currently active."},"CustomParameter":{"required":["cacheIrrelevant","name","values"],"type":"object","properties":{"cacheIrrelevant":{"type":"boolean","description":"When set to true, the custom parameter will not influence caching."},"name":{"type":"string","description":"The parameter name."},"values":{"type":"array","description":"The parameter values.","items":{"type":"string"}}}},"Filter":{"required":["name","substring","values"],"type":"object","properties":{"filterWarning":{"type":"string","description":"Contains warning about invalid filters (e.g. non-existent field or non-existent value).","enum":["NON_EXISTING_FIELD","NON_EXISTING_FIELD_VALUE"]},"name":{"type":"string","description":"The name of the filter."},"substring":{"type":"boolean","description":"If true, filter values will be applied as 'contains' instead of 'equals'."},"values":{"type":"array","description":"Filter values.","items":{"$ref":"#/components/schemas/FilterValue"}}}},"FilterValue":{"required":["exclude","type","value"],"type":"object","properties":{"exclude":{"type":"boolean","description":"When set to true, the filter will match when the record value does not equal the filter value."},"type":{"type":"string","description":"Describes how this filter value should interact with the corresponding filter field.","enum":["or","and"]},"value":{"$ref":"#/components/schemas/FilterValueInput"}}},"FilterValueInput":{"description":"The value to which the record values will be compared.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"Location":{"required":["latitude","longitude"],"type":"object","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number","description":"The latitude coordinate of the location.","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","description":"The longitude coordinate of the location.","format":"double"}},"description":"The location of the market."},"SortItem":{"required":["name","order"],"type":"object","properties":{"name":{"type":"string","description":"The name of the field to be sorted by, or 'Relevancy', for score based sorting."},"order":{"type":"string","description":"The sort order direction (ascending, descending).","enum":["asc","desc"]}}},"SuggestionResult":{"required":["articleNumberSearchAllowed","fieldRoles","suggestions"],"type":"object","properties":{"articleNumberSearchAllowed":{"type":"boolean","description":"True, if the field with 'productNumber' field role provides a regex pattern."},"fieldRoles":{"type":"object","additionalProperties":{"type":"string","description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"description":"A field to role mapping. For example, a field role may be 'brand', meaning that the field contains the manufacturer's name. (key = field role, value = field name)"},"geo":{"$ref":"#/components/schemas/Geo"},"splitDocuments":{"type":"boolean","description":"Indicator for document into variant splitting."},"suggestions":{"type":"array","description":"The requested suggestions.","items":{"$ref":"#/components/schemas/ResultSuggestion"}}},"description":"Contains a list of suggestions, the field role to field name mapping and the information if an article number search is possible."},"Geo":{"required":["markets","selectedMarkets","showDistance","showMarkets"],"type":"object","properties":{"markets":{"type":"array","description":"The unselected markets","items":{"$ref":"#/components/schemas/Market"}},"selectedMarkets":{"type":"array","description":"The selected markets","items":{"$ref":"#/components/schemas/Market"}},"showDistance":{"type":"boolean","description":"Should show the distance attached to the markets."},"showMarkets":{"type":"boolean","description":"Should show the list of all existing markets."}},"description":"Contains the selected and unselected markets."},"Market":{"type":"object","properties":{"distance":{"type":"number","description":"The distance between the location of the search and the market location associated with this element.","format":"double"},"hasProducts":{"type":"boolean","description":"True, if the market has at least one product mapped to it in the current search result, otherwise false."},"id":{"type":"string","description":"Id of the market"},"location":{"$ref":"#/components/schemas/Location"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"selected":{"type":"string","description":"TRUE, if the element is currently selected, otherwise FALSE.","enum":["TRUE","FALSE","IMPLICIT","IRRELEVANT"]}}},"SearchParams":{"required":["query"],"type":"object","properties":{"activeAbTests":{"type":"object","additionalProperties":{"type":"string","description":"The active ab tests variants."},"description":"The active ab tests variants."},"advisorStatus":{"$ref":"#/components/schemas/AdvisorCampaignStatusHolder"},"articleNumberSearch":{"type":"string","description":"Specifies if the search term should be interpreted as article number. Defaults to DETECT.","enum":["DETECT","ALWAYS","NEVER"]},"customParameters":{"type":"array","description":"May be used to provide custom parameters, such as for custom classes.","items":{"$ref":"#/components/schemas/CustomParameter"}},"exactSearchMode":{"type":"string","description":"Specifies whether the search term should be considered for the exact search, and how. Defaults to the mode that is configured for the channel.","enum":["LEGACY","DISABLED","EXACT_ONLY","EXACT_AND_FUZZY_FALLBACK","EXACT_AND_ALWAYS_FUZZY","EXACT_AND_REMAINDER_FUZZY"]},"excludeProductsNotInRange":{"type":"boolean","description":"Overrides the excludeProductsNotInRange setting for the geo search."},"filters":{"type":"array","description":"The filters to limit the search result.","items":{"$ref":"#/components/schemas/Filter"}},"followSearch":{"type":"string","description":"Optional request linking param from a previous search result or search param object. Can improve request performance."},"hitsPerPage":{"minimum":0,"type":"integer","description":"Number of products on a single page.","format":"int32"},"location":{"$ref":"#/components/schemas/Location"},"marketIds":{"uniqueItems":true,"type":"array","description":"Only show products that have values for these market IDs.","items":{"type":"string"}},"maxCountVariants":{"type":"integer","description":"Defines the maximum number of variants to be returned in the result.","format":"int32"},"maxDistance":{"minimum":1,"type":"number","description":"Overrides the maximum distance setting for the geo search.","format":"double"},"page":{"minimum":1,"type":"integer","description":"The page to be requested within the search result.","format":"int32"},"purchaserId":{"maxLength":2147483647,"minLength":1,"type":"string","description":"The ID of the purchaser. This ID is only needed if the 'Customer-Specific Info' module is activated. Otherwise it will be ignored."},"query":{"type":"string","description":"The search term."},"searchField":{"type":"string","description":"If set, the search term will be looked for only in the given field. Otherwise all searchable fields will be considered (for article number searches, all fields marked as containing article numbers)."},"showMarkets":{"type":"boolean","description":"Overrides the showMarkets setting for the geo search."},"showPermutedSearchParams":{"type":"boolean","description":"Specifies whether to include search parameters in the response for facet and sort item elements."},"sortItems":{"type":"array","description":"Specifies the sort order for the search result.","items":{"$ref":"#/components/schemas/SortItem"}},"splitDocumentsAt":{"type":"integer","description":"Threshold for variant splitting of documents.","format":"int32"}},"description":"Defines the search that should be executed when the element is clicked."},"ResultSuggestion":{"required":["attributes","hitCount","name","type"],"type":"object","properties":{"attributes":{"type":"object","additionalProperties":{"type":"object","description":"Contains additional information for the suggestion. Keys give the names of the attributes, with corresponding values."},"description":"Contains additional information for the suggestion. Keys give the names of the attributes, with corresponding values."},"hitCount":{"type":"integer","description":"The number of products that should be found when this suggestion is selected for a search.","format":"int32"},"image":{"type":"string","description":"The URL of the image to be displayed to the user."},"name":{"type":"string","description":"The name for the Suggest Entry that should be displayed to the user."},"score":{"type":"number","description":"Defines how well the suggestion matches the query.","format":"double"},"searchParams":{"$ref":"#/components/schemas/SearchParams"},"type":{"type":"string","description":"The suggestion type."}}},"ApiError":{"required":["error"],"type":"object","properties":{"error":{"type":"string","description":"A short error description"},"errorDescription":{"type":"string","description":"A description of the error cause"},"stacktrace":{"type":"array","description":"The stacktrace from the error (will only be transmitted when the query parameter verbose=true was added to the request)","items":{"type":"string"}}},"description":"Contains information which will be returned when an error occurs."}}},"paths":{"/rest/v5/suggest/{channel}":{"post":{"tags":["search"],"summary":"Get suggestions with POST","description":"<b>Required Roles</b>: <em>ApiPublicQueries</em>","operationId":"getSuggestionsWithPOST","parameters":[{"name":"channel","in":"path","description":"The channel","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestParams"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestionResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}
```

## Get popular searches

> \<b>Required Roles\</b>: \<em>ApiPublicQueries\</em>

```json
{"openapi":"3.0.1","info":{"title":"FactFinder REST API","version":"v5"},"tags":[{"name":"search","description":"Operations for search and suggest"}],"servers":[{"url":"https://vector-demo.fact-finder.de/fact-finder/","description":"Generated server url"}],"security":[{"basicAuth":[]},{"oAuth2":["public_queries"]},{"apiKey":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"},"oAuth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"oauth/token","scopes":{"public_queries":"","import":"","database":"","config":"","analytics":"","jobs":"","monitor":"","manage":"","users":""}}}},"apiKey":{"type":"apiKey","name":"X-FF-API-Key","in":"header"}},"schemas":{"PopularSearchesResult":{"required":["popularSearches"],"type":"object","properties":{"popularSearches":{"type":"array","description":"The requested popular searches.","items":{"$ref":"#/components/schemas/PopularSearch"}}},"description":"Contains a list of popular searches."},"PopularSearch":{"required":["name","type"],"type":"object","properties":{"name":{"type":"string","description":"The name for the Popular searches entry that should be displayed to the user."},"type":{"type":"string","description":"The suggestion type."}}},"ApiError":{"required":["error"],"type":"object","properties":{"error":{"type":"string","description":"A short error description"},"errorDescription":{"type":"string","description":"A description of the error cause"},"stacktrace":{"type":"array","description":"The stacktrace from the error (will only be transmitted when the query parameter verbose=true was added to the request)","items":{"type":"string"}}},"description":"Contains information which will be returned when an error occurs."}}},"paths":{"/rest/v5/suggest/{channel}/popularSearches":{"get":{"tags":["search"],"summary":"Get popular searches","description":"<b>Required Roles</b>: <em>ApiPublicQueries</em>","operationId":"getPopularSearches","parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PopularSearchesResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fact-finder.com/api-reference/search.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
