#vue.js #algolia #faceted-search
#vue.js #algolia #фасетный поиск
Вопрос:
Я работаю над приложением Vue, которое использует Algolia InstantSearch. Мне нужно иметь доступ к необработанной информации о фасетах при выполнении поисковых запросов.
Я вижу, что нужные мне данные передаются из вызовов API (…algolia.net/1/indexes /*/запросы):
{
"results": [
{
"hits": [/*...*/],
"nbHits": 107,
"page": 0,
"nbPages": 12,
"hitsPerPage": 9,
/* This is the bit I want to be able to access... */
"facets": {
"size": { /*... */},
"price": { /*... */},
"project.geohash.hash1": {
"r": 44
},
/* ... */
},
"facets_stats": { /*... */},,
/*... */,
}
/*... */,
]
}
Код Vue выглядит следующим образом:
<ais-sort-by
:items="[
{ value: algoliaIndexName, label: 'Featured' },
{ value: 'price_asc_vindex', label: 'Price asc.' },
{ value: 'price_desc_vindex', label: 'Price desc.' },
]"
> -
<div slot-scope="{ items, refine, currentRefinement}">
<b-dropdown
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
:text="items.find(i => i.value === currentRefinement).label"
right
variant="outline-primary"
>
<b-dropdown-item
v-for="item in items"
:key="item.value"
@click="refine(item.value)"
>
{{ item.label }}
</b-dropdown-item>
</b-dropdown>
</div>
</ais-sort-by>
<ais-hits-per-page
:items="[
{ label: '9 per page', value: 9, default: true, isRefined: true },
{ label: '18 per page', value: 18 },
]"
>
<div slot-scope="{ items, refine}">
<!-- Hits per page Button -->
<b-dropdown
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
:text="hitsPerPageOption.label || items[0].label"
right
variant="outline-primary"
>
<b-dropdown-item
v-for="item in items"
:key="item.value"
@click.prevent="refine(item.value);hitsPerPageOption=item"
>
{{ item.label }}
</b-dropdown-item>
</b-dropdown>
</div>
</ais-hits-per-page>
Я не могу найти виджет AIS, который предоставляет необработанную информацию о фасетах.
В качестве альтернативы я мог бы получить доступ к algoliasearch
экземпляру, но я не вижу, как использовать его для доступа к информации о текущем поиске, а не для запуска нового поиска.
Как я могу получить доступ к этой информации фасета?