Доступ к фасетам в Algolia InstantSearch

#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 экземпляру, но я не вижу, как использовать его для доступа к информации о текущем поиске, а не для запуска нового поиска.

Как я могу получить доступ к этой информации фасета?