Algolia的optionalFilters参数可以用于在使用虚拟索引时过滤结果,类似于使用普通索引上的筛选器。下面是一个代码示例,解释如何使用optionalFilters参数来过滤结果:
const index = client.initIndex('myIndex');
// Define virtual index with filters
const virtualIndex = index
.setSettings({
attributesToRetrieve: ['name', 'description'],
searchableAttributes: ['name', 'description'],
})
.search('', {
filters: 'category:electronics',
});
// Optional filters query
const optionalFilters = 'in_stock:true AND rating > 4';
// Search with optionalFilters
virtualIndex.search('', {
optionalFilters,
})
.then(({ hits }) => {
// Display results
console.log(hits);
});
在上面的代码中,我们首先定义一个普通索引。然后,我们为该索引定义了一个虚拟索引,只检索具有category属性值为electronics的记录。最后,我们使用Algolia的Search方法来搜索虚拟索引,包括optionalFilters参数,在结果中过滤具有in_stock属性值为true且评分大于4的记录。