Algolia:如何过滤掉客户端的 objectIDs 列表

Algolia : How to filter out a list of objectIDs client side

我有一个用户可以关注的用户列表,来自 algolia 索引。

const index = client.initIndex('index');

const f= { filters: 'objectType:user };

index.search('user', f, (e, c) => {
       const x = c.hits;
});

现在,该用户已经关注了一组用户 ID,我不希望从该搜索中返回这些用户,我该如何过滤掉这些用户。 UserID 在这种情况下是 objectID

我建议使用 Algolia 的 "Negative Filters" 来实现这一点。

https://www.algolia.com/doc/guides/searching/filtering/?language=instantsearchjs#negative-filters

因此,如果您有一个用户 ID 数组,您可以构建一个如下所示的过滤器:

const filters = 'objectType:user AND NOT objectID:123 AND NOT objectID:456 ...';

您可以通过遍历 ID 数组并将其添加到每个用户 ID 的过滤器中来构建此过滤器字符串:

`AND NOT objectID:${userId}`