我正在使用Algolia的ais-instantsearch组件在Angular中搜索和显示结果。

目前,这是我的代码,

<ais-instantsearch [config]="config">
    <ais-hits>
        ...
    </ais-hits>
</ais-instantsearch>


现在我的问题是,如何向此搜索请求中添加numericFilter?

例如,我想返回所有具有属性is_simple=1的匹配。如何实现呢?

最佳答案

我知道以下三个选项,具体取决于过滤器应多久更改一次。

1.配置小部件中的searchParameters

<ais-instantsearch [config]="config">
  <ais-configure [searchParameters]="{ filters: 'is_simple=1' }">
  </ais-configure>
  ...
</ais-instantsearch>


您可以动态编辑过滤器,这将导致搜索被触发。

资料来源:https://community.algolia.com/angular-instantsearch/widgets/configure.html

2. InstantSearch小部件中的searchParameters

您可以按照Ajay先前的建议,直接在InstantSearch小部件的配置中添加过滤器。如果它是永久性过滤器,请使用此选项。

资料来源:https://community.algolia.com/angular-instantsearch/widgets/instantsearch.html

3. InstantSearch小部件中的searchFunction

<ais-instantsearch [config]="{
          apiKey: 'XXXXXXXXXXXXXXXX',
          appId: 'XXXXXXX',
          indexName: 'test_index',
          searchFunction: searchFunction }" >
...
</ais-instantsearch>


每当触发搜索时,都会调用searchFunction挂钩,从而为您提供AlgoliaSearchHelper

   searchFunction(helper) {
     helper.addNumericRefinement('is_simple', '=', '1');
     helper.search();
   }


确保实际触发搜索。如果要在每次搜索时都编辑过滤器,请使用此选项。

资料来源:https://community.algolia.com/angular-instantsearch/widgets/instantsearch.html

关于javascript - 如何在Angular 6中将数字过滤器添加到Algolia ais-instantsearch组件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51979855/

10-09 00:33