Render results
<form id="search-form">
<input type="text" id="search" placeholder="search" />
<button type="submit" id="search-button">Search</button>
<div id="search-results" className="ns-autocomplete"></div>
</form>import {
autocomplete,
search,
fromLiquidTemplate,
defaultLiquidTemplate,
} from "@nosto/autocomplete/liquid"
import "@nosto/autocomplete/styles.css"
autocomplete({
fetch: {
products: {
fields: ["name", "url", "imageUrl", "price", "listPrice", "brand"],
size: 5,
},
keywords: {
size: 5,
fields: ["keyword", "_highlight.keyword"],
highlight: {
preTag: `<strong>`,
postTag: "</strong>",
},
},
},
inputSelector: "#search",
dropdownSelector: "#search-results",
render: fromLiquidTemplate(defaultLiquidTemplate),
submit: async (query, config, options) => {
if (query.length >= config.minQueryLength) {
const response = await search(
{
query,
},
{
redirect: true,
track: config.nostoAnalytics ? "serp" : undefined,
...options
}
)
// Do something with response. For example, update Search Engine Results Page products state.
}
},
})Last updated
Was this helpful?