Configuring AI Search
This article describes the process of enabling the AI search engine on a website. First, the feature is configured, then the configuration is implemented so it can become operational. Learn more about capabilities of the feature here.
Terminology explained
- Index - A data structure created from a catalog of items. The index is used by the search engine to look for results that match a query.
- Score - It is a value that indicates how relevant a search result is for a given query.
- Facets - Used in search to let customers narrow down search results to items that have common features.
Prerequisites
- Import an item feed to Data Management > Catalogs in the application.
WARNING: The value of an item attribute in the item feed or a catalog cannot be longer than 1000 characters. It applies both for creating a new index and updating it. - Configure the AI engine for your catalog.
Implementation
The AI search can be implemented by using two endpoints:
- Autocomplete - When listening to the input, you can use the autocomplete endpoint in our API to send each keystroke of the customer to the search engine and receive autocomplete results as the customer types. The results need to be rendered in real time in the search box.
- Full-text search - The search is only performed once, when the customer initiates it by clicking the search button or pressing
ENTER
. The results are usually displayed on a dedicated page.Tip: These search endpoints are available as both GET and POST requests. For details, see the API Reference.
The requests can be authorized with the same tracker key as used in the tracking code.
Example of a search request:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var result = JSON.parse(this.responseText);
Console.log(result);
}
};
xhttp.open("GET", "https://ai-api.synerise.com/search/v2/indices/{indexId}/query?query={SEARCH_QUERY}&clientUUID={USER_UUID}&token={TRACKING_KEY}", true);
You must send an item.search.click
event. This enables monitoring the search statistics and preparing search analytics.
{
"clientUUID": String,
"searchType": String,
"correlationId": String,
"position": Number,
"item": String
}
where:
clientUUID
is the customer’s UUID,correlationId
must be have the same value as thesearchId
parameter value. You can source this value from the search response. Thanks to this, you can link a search result with information about which item from that result was clicked.position
is the position of the clicked item.
IMPORTANT: the first position is 1, not 0,item
is the ID of the clicked item,searchType
is the type of search conducted: full-text search or autocomplete search.
Limits
The following are the default limits per workspace, you can contact Customer Support to request changing them:
- Maximum number of search indices: 10
- Maximum number of searchable attributes per index: 40
- Maximum number of facetable attributes per index: 40
- Maximum number of filterable attributes per index: 40
- Maximum number of sortable attributes per index: 20
- Maximum number of rules per index: 1000
- Maximum number of synonyms per index: 1000
- Maximum number of suggestion indices: 10
- Maximum number of segmentations used in rules: 10
You can use up to 10 various segmentations in all rules in one index. Multiple occurrences of the same segmentation count as one towards the limit. - Maximum number of dynamic analyses (aggregates and expressions) to be used in filters: 2
You can use two various aggregates or expressions, or one expression and one aggregate. Multiple occurrences of the same analysis count as one towards the limit.
-
Create an index
-
Add synonyms
-
Create rules
-
Index settings