Search API
This page describes how to use SearchStax® SearchStudio “Search API”.
The Search Endpoint (/emselect) for your SearchStudio App is available within your Apps Management page as shown below:

Your Solr endpoints are protected using Basic Authentication. When using the endpoints for search, it is recommended to use the Read-Only API Credentials.
Contents of this page:
- Basic Search
- Language
- Pagination
- Sorting
- Faceting
- Spelling Suggestions
- Advance Search API Options
- Personalisation / Search using different models
Basic Search
For performing basic search, simply pass the query as the 'q'
parameter as shown below:
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&language=en
This returns the search results as configured by your SearchStudio Application for your default model as shown below:
{
"responseHeader": {
"zkConnected": true,
"status": 0,
"QTime": 2,
"params": {
"spellcheck.dictionary": "studio_spellcheck_dictionary",
"hl": "true",
"echoParams": "all",
"fl": "content_type,title,paths,url,content,date,id,author_name,[elevated]",
"f.author_name.facet.sort": "index asc",
"f.meta_keywords_facet.facet.mincount": "1",
"f.content_type.facet.mincount": "1",
"defType": "edismax",
"qf": "title^77.0 meta_description^35.0 content^6.0 meta_keywords url",
"f.content_type.facet.sort": "count",
"model": "CorpSiteModel",
"f.content_type.facet.limit": "5",
"wt": "json",
"facet.field": [
"content_type",
"author_name",
"meta_keywords_facet"
],
"f.author_name.facet.mincount": "1",
"rows": "2",
"spellcheck.extendedResults": "true",
"hl.snippets": "4",
"q": "sitecore",
"language":"en",
"spellcheck": "on",
"spellcheck.accuracy": "0.9",
"spellcheck.count": "1",
"f.author_name.facet.limit": "5",
"f.meta_keywords_facet.facet.sort": "count",
"facet": "true",
"uniqueId": "url",
"f.meta_keywords_facet.facet.limit": "5"
}
},
"response": {
"numFound": 138,
"start": 0,
"docs": [
{
"content_type": [
"Webpage"
],
"url": "https://www.searchstax.com/solutions/sitecore-solr/",
"title": [
"Sitecore Solr Search: Get fast and relevant search results | SearchStax"
],
"paths": [
"solutions / sitecore-solr"
],
"content": [
"Create on-demand or scheduled backups of your deployments. SearchStax provides various disaster recovery options to meet your RPO and RTO objectives.. 100s of Sitecore deployments already use SearchStax. Plus SearchStax is the service that powers Solr for Sitecore Managed Cloud.."
],
"[elevated]": true
},
{
"content_type": [
"Blog"
],
"url": "https://www.searchstax.com/blog/searchstax-solr-plugin-for-sitecore-10/",
"title": [
"SearchStax Solr Plugin for Sitecore 10 | The Search Experience Blog"
],
"paths": [
"blog / searchstax-solr-plugin-for-sitecore-10"
],
"content": [
"We are pleased to announce that we have added Sitecore 10 support for our Sitecore Solr Plugin. The Sitecore Solr Plugin accelerates the process and automates a number of manual tasks involved with connecting a Sitecore installation to a SearchStax Solr instance. Setting up Solr with the Plugin takes just a few minutes and will save you hours of time and effort.."
],
"date": "2020-08-26T00:00:00Z",
"author_name": "Tom Humbarger",
"[elevated]": true
}
]
},
"facet_counts": {
"facet_queries": {},
"facet_fields": {
"content_type": [
"documentation", 67,
"blog", 44,
"webpage", 15,
"case", 9,
"study", 9
],
"author_name": [
"Bruce Clayton", 5,
"Christophe Cremault", 5,
"Dipsy Kapoor", 2,
"Eric Melz", 1,
"Karan Jeet Singh", 4
]
},
"facet_ranges": {},
"facet_intervals": {},
"facet_heatmaps": {}
},
"highlighting": {
"https://www.searchstax.com/solutions/sitecore-solr/": {
"meta_description": [
"Optimize your <em>Sitecore</em> Solr search. Get the latest version of Solr and custom plugin support for your <em>Sitecore</em> deployment with SearchStax"
],
"title": [
"<em>Sitecore</em> Solr Search: Get fast and relevant search results | SearchStax"
],
"content": [
".. 100s of <em>Sitecore</em> deployments already use SearchStax. Plus SearchStax is the service that powers Solr for <em>Sitecore</em> Managed Cloud.. Development nodes"
]
},
"https://www.searchstax.com/blog/searchstax-solr-plugin-for-sitecore-10/": {
"meta_description": [
"We have added <em>Sitecore</em> 10 support for our <em>Sitecore</em> Solr Plugin. The Plugin automates connecting <em>Sitecore</em> to a SearchStax Solr instance."
],
"title": [
"SearchStax Solr Plugin for <em>Sitecore</em> 10 | The Search Experience Blog"
],
"content": [
"We are pleased to announce that we have added <em>Sitecore</em> 10 support for our <em>Sitecore</em> Solr Plugin. The <em>Sitecore</em> Solr Plugin accelerates the process",
" and automates a number of manual tasks involved with connecting a <em>Sitecore</em> installation to a SearchStax Solr instance. Setting up Solr with the Plugin takes just",
" a few minutes and will save you hours of time and effort.. As a <em>Sitecore</em> Technology Alliance Program partner, we know how important it is to stay in step",
" with and support the new <em>Sitecore</em> 10 release. We continue to empower and support the <em>Sitecore</em> community by making Solr easier to install and manage on the <em>Sitecore</em>"
]
}
},
"spellcheck": {
"suggestions": [],
"correctlySpelled": true
},
"metadata": {
"facets": [
{
"name": "content_type",
"label": "Content Type"
},
{
"name": "author_name",
"label": "Author"
},
{
"name": "meta_keywords_facet",
"label": "Keywords"
}
]
}
}
responseHeader.params
gives details of all parameters passed to the search request, including responseHeader.params.rows which gives the number of documents returned in the responseresponse.numFound
gives the total number of documents that matched the queryresponse.start
gives zero starting index of the search resultsresponse.docs
contains the documents that matched the query. It includes all fields that were selected during Result Configuration inside the SearchStudio App. It also always include the field that is marked as the “uniqueKey” in the schema, which is most cases is either"id"
or"url"
; and[elevated]
which marks whether the result document is a “promoted/sponsored” item or a regular search result.facet_counts.facet_fields
contains dynamically generated Facet name as counts. The Facets returned are configured from the SearchStudio App. For each facet, the response contains the value of the facet, and a count of the number of documents that have that facet value.highlighting
gives the highlighted content if Search highlighting is selected in the SearchStudio App. It is organized by the unique id of the documentspellcheck
contains spelling suggestions
SearchStax uses the eDisMax query parser and supports the standard Solr query Syntax. Some query examples are:
- Get documents matching “sitecore plugin”, not neccesarily together or containing both words –
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore plugin
- Get documents matching “sitecore plugin” as a phrase (Phrase Query) –
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q="sitecore plugin
“ - Get documents where sitecore and plugin are within 20 words of each other (Proximity Query) –
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q="sitecore plugin
“~20 - Get documents containing words starting with site (Wildcard Query) –
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=site*
Language
If your Studio Application is configured for multiple languages, use the language parameter, providing the 2-digit code for the language. If omitted, this defaults to the default language. Example for Spanish (es):
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&language=es
If your dataset contains different documents for different languages in the same app, you might have to also add filter criteria to filter the results to only that language. You can do that as shown below in the example, or by using “Global Filters” in the app settings for the language. Example:
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&language=es&fq=language_s:"es_ES"
Pagination
start
and rows
parameters control the pagination. start
is zero based index of the search results and rows
is the number of results to return per page. Example:
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&start=4&rows=4
gives the second page of search results, if you are getting 4 results per page. The format of the result is the same as Basic Search.
Sorting
You can use the sort
parameter to specify the field by which you would like to sort the search results. If the parameter is omitted, by default, the search results are sorted by relevance. Below are some examples showing sorting
- Sort by Date Descending
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&sort=date%20desc
- Sort by Date Ascending
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&sort=date%20asc
- Sort by title Ascending
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&sort=title%20asc
Faceting / Facet Selection
In the search results facet_counts.facet_fields
contains all the facets. To apply a facet and narrow down the search results, the fq
parameter is used.
- Add a facet on content_type, selecting Blog
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&fq=content_type:"blog"
- Add 2 facets: To add multiple facets, simply pass multiple fq parameters
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&fq=content_type:"blog"&fq=author_name:"John Adams"
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&fq=content_type:"blog"&fq=author_name:"John Adams"
Spelling Correction
If a user misspells the search term, and a corresponding correction can be detected, spellcheck.suggestions
will contain the spelling suggestions. Example:
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecole
gives back:
{
"responseHeader":{..},
"response":{"numFound":0,"start":0,"docs":[]
},
"facet_counts":{},
"highlighting":{},
"spellcheck":{
"suggestions":[
"sitecole",{
"numFound":1,
"startOffset":0,
"endOffset":8,
"suggestion":["sitecore"]}],
"correctlySpelled":false},
"metadata":{..}
}
The spellcheck component is configured to return back 1 spelling suggestion. To retrieve more spelling suggestions, the parameter `spellcheck.count` can be used. Example
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecole&spellcheck.count=4
If you would like no spelling suggestions offered when there are any documents matching the query, pass spellcheck.maxResultsForSuggest=1
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecole&spellcheck.count=4&spellcheck.maxResultsForSuggest=1
Advance Search API Options
- metadata: emselect endpoint returns additional metadata that can be useful for the User Interface. If you would not like that to be returned, you can pass ‘metadata=false’ to the API. Example:
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&metadata=false
- flAdditional: You should select the list of fields to be returned from SearchStudio. However, of you any reason you would like to add additional parameters to the fields selected from SearchStudio, you can pass them as the flAdditional parameter. Example:
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&flAdditional=geodist(),score
Personalisation / Search using different models
SearchStudio allows you to configure multiple models. These could be used for an experiment, or to provide personalized search results. To use a particular model, pass the model name as the model
parameter. If no model is specified, the search engine uses what is specified as the “default” model in the SearchStudio Application.
Example: If you have a model named ‘experimentA’ you can pass it as shown below
https://ss849763-cvrfzabx-us-east-1-aws.searchstax.com/solr/ss849763-SearchStudioCorpSite/emselect?q=sitecore&model=experimentA