Mehul Savaliya
02/04/2022, 11:41 AMKishore Nallan
02/04/2022, 12:27 PMMehul Savaliya
02/09/2022, 6:12 AM<template>
<ais-instant-search-ssr>
<ais-index
index-name="instant_search_demo_query_suggestions"
index-id="querySuggestions"
>
<ais-search-box />
<ais-configure :hits-per-page.camel="5" />
<ais-hits>
<template v-slot:item="{ item }">
<ais-highlight
attribute="query"
:hit="item"
/>
</template>
</ais-hits>
<ais-pagination />
</ais-index>
<ais-search-box />
<ais-stats />
<ais-index
index-id="refinement"
index-name="instant_search"
>
<ais-refinement-list attribute="brand" />
</ais-index>
<ais-hits>
<template v-slot:item="{ item }">
<p>
<ais-highlight
attribute="name"
:hit="item"
/>
</p>
<p>
<ais-highlight
attribute="brand"
:hit="item"
/>
</p>
</template>
</ais-hits>
<ais-pagination />
</ais-instant-search-ssr>
</template>
<script>
import {
AisInstantSearchSsr,
AisIndex,
AisConfigure,
AisRefinementList,
AisHits,
AisHighlight,
AisSearchBox,
AisStats,
AisPagination
} from 'vue-instantsearch';
import { typesense } from 'config'
import TypesenseInstantSearchAdapter from 'typesense-instantsearch-adapter';
const typesenseInstantsearchAdapter = new TypesenseInstantSearchAdapter({
server: typesense,
cacheSearchResultsForSeconds: 2 * 60,
additionalSearchParameters: {
perPage: 50,
length: 50,
queryBy: 'product_name,sku',
},
});
const searchClient = typesenseInstantsearchAdapter.searchClient;
export default {
components: {
AisInstantSearchSsr,
AisIndex,
AisConfigure,
AisRefinementList,
AisHits,
AisHighlight,
AisSearchBox,
AisStats,
AisPagination,
},
head() {
return {
link: [
{
rel: 'stylesheet',
href:
'<https://unpkg.com/instantsearch.css@7.1.0/themes/algolia-min.css>',
},
],
};
},
};
</script>
<style>
.ais-Hits-list {
text-align: left;
}
.ais-Hits-list:empty {
margin: 0;
}
.ais-InstantSearch {
margin: 1em;
}
</style>
Jason Bosco
02/10/2022, 4:34 PM