当查询多个索引时,如何在algolia中为每个索引使用不同的搜索参数?(Vue Instantsearch)

zpjtge22  于 2023-04-21  发布在  Vue.js
关注(0)|答案(1)|浏览(158)

我正在使用Vue Instantsearch和多个索引。
查询发生在ais-search-box组件中,同时查看两个索引并在ais-autocomplete组件中显示结果。
这很好,但是我找不到一种方法来为每个索引分配一个相应的ais-configure组件,因此必须为两个索引使用相同的过滤器。正如你可能想象的那样,两个索引包含不同的属性,这并不像预期的那样工作。
文档中提到:
由于这是两个专用的索引,因此您可以将不同的参数和小部件应用于搜索。您可以通过向ais-configure传递不同的参数或在每个ais-index组件中安装不同的小部件来实现。(来源:https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/multi-index-search/vue/
似乎不清楚如何“将不同的参数传递给ais-configure”?有人能提供一个例子吗?

zf9nrax1

zf9nrax11#

在同一个页面下面有一个github repo的例子。这里有一个指向有问题的代码的深层链接:
https://github.com/algolia/doc-code-samples/blob/master/Vue%20InstantSearch/multi-index-hits/src/App.vue
您可以将ais-config嵌套在ais-index组件下进行第二次搜索。类似于:

<ais-instant-search
        :search-client="searchClient"
        index-name="instant_search_price_desc"
      >
        <ais-search-box v-model="query" />
        <ais-configure
          :restrictSearchableAttributes="['name']"
          :hitsPerPage="8"
        />
        <ais-hits>
          <template slot="item" slot-scope="{ item }">
            <h3><ais-highlight :hit="item" attribute="name" /></h3>
            <img :src="item.image" />
          </template>
        </ais-hits>
        <hr />
        <ais-index :search-client="searchClient" index-name="instant_search">
          <ais-configure
           :restrictSearchableAttributes="['name']"
           :hitsPerPage="2"
          />
         <ais-hits>
            ...

相关问题