Advanced AI Search
Advanced AI Search introduces an AI-powered, context-aware search engine that works across multiple modules, supports advanced semantic indexing, and provides flexible configuration options for fine-tuning search algorithms.
The feature includes settings for API integration, multi-module search sources, advanced property weighting, module-level configuration, and a Liquid component for front-end rendering. This is a complete end-to-end semantic search system designed for scalability and deep customisation.
Enabling
Advanced AI Search is installed as a site extension and can therefore be enabled from your reseller Portal, via the site instance settings, then under the ‘Extensions’ tab.
Clicking the “Install” button will move the extension to the ‘Installed Extensions’ section and activate it for that site.
Once installed, the extension will be available for use via the site admin as detailed below.
Uninstalling
From your reseller Portal, via the site instance settings, then under the ‘Extensions’ tab, clicking the trash can () icon next to the Advanced AI Search extension will uninstall the extension from the site and move it back to the ‘Available Extensions’ section.
If any of the advanced search configurations are still in place, you will not be able to remove the extension. Be sure to delete such search configurations and, if needed, convert any search interfaces to regular site search functionality.
Edit Settings
The Advanced AI Search module and its settings can be found under the 'Extensions' item in the left hand admin menu, then choose "Advanced AI Search".
From the main “SETTINGS” tab, you can add your OpenAI API key. This is required for the functioning of the AI model.
You can register for an OpenAI account here: https://auth.openai.com/create-account and generate an API key within the account settings.
OpenAI’s cost of embeddings is charged based on OpenAI’s pricing. Full pricing table can be found here: https://platform.openai.com/docs/pricing#embeddings
WebinOne is using the text-embedding-3-large model: https://platform.openai.com/docs/models/text-embedding-3-large
Multi Module Searches
Under the “MULTI MODULE SEARCHES” tab, you can see any search configurations currently in place, and you can edit or delete those configurations.
Add a new search configuration with the “CREATE NEW” button and start fine-tuning advanced search capabilities for one or more site modules, including the properties that will be indexed and how they will contribute to the relevancy scoring.
While you can use this interface to configure just one module to be searched, you can also configure individual module Advanced Search options directly in the module’s settings and utilise that module's component tag for listing single-module search results (as opposed to using the `advanced_site_search` component).
Regenerate Vectors
Search vectors are automatically generated any time a module item is created, edited or imported, ensuring up-to-date semantic indexing at all times. However, you can manually regenerate the vector data in the search database to make sure all embeddings are fully updated and consistent. This is optional and can be performed when troubleshooting search implementation or where a refresh of the data may be needed.
Settings
When creating a new search configuration, you have the following options available:
A descriptive name for your search configuration.
System reference for the search configuration.
Changing the alias will result in any existing components breaking that reference the previous alias.
Select the modules to be included in the search.
Be sure to click “ADD” to apply the module to the list.
Advanced Settings
Select the module properties that are to be included in the search indexing.
Be sure to click “ADD” to apply the module to the list.
By default, the search indexes the properties “Name” and “Description”. However, you can remove or add to these as needed, enabling up to 6 searchable properties in total.
Supported property types include:
- Checkbox List
- Dropdown List
- Radio List
- String
- Multiline
Only matching properties across modules can be used for search indexing. This
means that most of the common system properties are available, as well as any custom properties
that have matching names across modules.
For example, if you have a property called “Short Description” set up on all the modules included in the search configuration, then that property will be available for indexing.
Each individual property can be assigned a weighting score to determine how heavily it influences the search results in comparison to the other indexed properties.
This can be done visually, via the sliders, moving the large vertical line/s left or right to assign more or less weighting to the properties on either side. Alternatively, weighting can be manually assigned with percentage values in the input fields in to each properties tile.
Use the distribute icons () next to the sliders to evenly distribute weighting values across all properties.
In addition to priority weighting, within each property, you can adjust the semantic balance the AI will use to determine search relevance. This is divided into two concepts; “Main” and “Context”, where “Main” refers to the literal matching of the search query against the value of the property, and “Context” refers to the contextual interpretation and meaning of the search query against the property value.
Giving a property a higher “Main” percentage would result in a more literal matching, while reducing the conceptual matching, and vice-versa if a lower “Main” percentage is given.
Given the nature of AI models, these values are flexible and likely require some level of experimentation and trailing to suit the particular site/content being searched.
Adding Search Functionality
consists of form and component... use component manage or manually configured
A typical search implementation consists of a search input (the Search Form) and a search results listing (the Component Tag).
Let's look at these two elements separately below.
Search Form
You can obtain the search form HTML markup from the Component Manager while you are configuring the `advanced_site_search` component (as detailed below), or you can simply use the following code.
<form action="">
<input type="text" name="SemanticQuery">
<input type="submit" value="Search">
</form>
This form code consist of a text input (for the search query) and a submit button.
By default, the Advanced Site Search form has an empty action attribute, so once submitted, it will redirect
back to the current page with the `SemanticQuery` URL parameter appended to the page URL.
For example, if you placed the default Advanced Site Search code onto a page with URL slug /my-search, and entered
Keywords to Search for the search query, the form submission will reload the page as
/my-search?SemanticQuery=Keywords+to+Search.
You can, instead, separate the Advanced Site Search form from the results listing, having the ‘advanced_site_search’ component on a separate page and sending the search query to that page instead of the current page.
To do this, you’d add the search listings page URL slug to the form’s action attribute. So if the other page
was “/search-results”, you’d adjust the form as such:
<form action="/search-results">
You may want to do this if you have a dedicated search results page, or where you have the search input in the header or footer of all pages so that searches could be made from any page.
‘advanced_site_search’ component
This component outputs data relating to a keyword search query that is passed in the URL via the parameter
SemanticQuery (typically from a search form submission) to the page that the component resides on.
The ‘advanced_site_search’ component will use the value of this parameter (the keyword/s) to return items to its layout and/or collection.
There are two main ways to configure the ‘advanced_site_search’ component tag. You can use the Component Manager to obtain both the form code and to configure a the component tag to invoke your Advanced AI Search configuration, and insert it into the editor, or you can manually configure the tag by coding the desired parameters directly into the component tag and adding the form code as described above.
Using the Component Manager
Opening the Component Manager via the floating interface button () will reveal a list of available modules and other system items.
Selecting the 'Advanced AI Search' section will display the configuration panel.
Follow the prompts to choose which Advanced AI Search configuration you'd like to use and to configure the way you'd like to retrieve the search results (such as; how to filter and sort items, how many to render, use of pagination, etc.) then click the blue link/s at the end to copy the form code and the constructed component code to your clipboard. Now you can paste this code into your page content or where otherwise required.
To learn more about these render options, view the 'Component Tag: Manual Configuration' section below.
Component Tag: Manual Configuration
Single Module Search
While you can use the Advanced AI Search to configure just one module to be searched, you can also configure individual module Advanced Search options directly in the module’s settings and utilise that module's component tag for listing single-module search results (as opposed to using the `advanced_site_search` component).
From the Custom Modules item list view, click the " EDIT SETTINGS" button to display a menu for further options, and select the “Advanced Search” option.
From here, you can enable the Advanced Search and configure the searchable properties and weighting in the same way as described for the Multi Module Search above.
When searching directly against a single module like this, use the module’s component tag rather than the `advanced_site_search` component by adding the isSearchResult and minScore parameters, for example:
{% component source: "<Custom Module name/ID>", isSearchResult: "true", minScore: "0.3", type: "module" %}
