如何在 Angular 6 中向 Algolia ais-instantsearch 组件添加数字过滤器
How to add numeric filter to Algolia ais-instantsearch component in Angular 6
我正在使用 Algolia 的 ais-instantsearch 组件在 Angular 中搜索和显示结果。
目前,这是我的代码,
<ais-instantsearch [config]="config">
<ais-hits>
...
</ais-hits>
</ais-instantsearch>
现在我的问题是,如何将 numericFilter 添加到这个搜索请求中?
例如,我想 return 所有具有属性 is_simple=1
的匹配。如何实现?
您是否尝试过扩展 config
以包括 searchParameters
,正如他们在 docs - but also note it is recommended 中描述的那样,以使用基本 filters
而不是 numericFilters
:
<ais-instantsearch
[config]="{
apiKey: '6be0576ff61c053d5f9a3225e2a90f76',
appId: 'latency',
indexName: 'instant_search',
searchParameters: {
filters: 'is_simple=1'
}
}"
>
<ais-hits>
...
</ais-hits>
</ais-instantsearch>
我知道以下三个选项,具体取决于过滤器更换的频率。
1.配置小部件中的搜索参数
<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 小部件中的搜索参数
您可以按照 Ajay 之前的建议,直接在 instantSearch 小部件的配置中添加过滤器。如果它是永久过滤器,请使用此选项。
来源:https://community.algolia.com/angular-instantsearch/widgets/instantsearch.html
3。 instantSearch 小部件中的搜索功能
<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
我正在使用 Algolia 的 ais-instantsearch 组件在 Angular 中搜索和显示结果。
目前,这是我的代码,
<ais-instantsearch [config]="config">
<ais-hits>
...
</ais-hits>
</ais-instantsearch>
现在我的问题是,如何将 numericFilter 添加到这个搜索请求中?
例如,我想 return 所有具有属性 is_simple=1
的匹配。如何实现?
您是否尝试过扩展 config
以包括 searchParameters
,正如他们在 docs - but also note it is recommended 中描述的那样,以使用基本 filters
而不是 numericFilters
:
<ais-instantsearch
[config]="{
apiKey: '6be0576ff61c053d5f9a3225e2a90f76',
appId: 'latency',
indexName: 'instant_search',
searchParameters: {
filters: 'is_simple=1'
}
}"
>
<ais-hits>
...
</ais-hits>
</ais-instantsearch>
我知道以下三个选项,具体取决于过滤器更换的频率。
1.配置小部件中的搜索参数
<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 小部件中的搜索参数
您可以按照 Ajay 之前的建议,直接在 instantSearch 小部件的配置中添加过滤器。如果它是永久过滤器,请使用此选项。
来源:https://community.algolia.com/angular-instantsearch/widgets/instantsearch.html
3。 instantSearch 小部件中的搜索功能
<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