向algolia搜索发送多个词

Seb*_*dez 2 algolia

我正在我的网站中实现algolia搜索,我希望得到一组数据匹配我发送到搜索的任何ID,所以我需要知道如何向搜索发送多个参数,所以我可以发送一组ids,像这样:

let client = algoliasearch(APP_ID, API_KEY),
    index = client.initIndex(INDEX_NAME);

let term=["3223212","2423434"];
    index.search(term, callback)
Run Code Online (Sandbox Code Playgroud)

这个现在不行,有什么想法吗?甚至如何使用像过滤这样的另一个algolia feautre来实现我的目标?

Jer*_*ska 8

如果您尝试通过objectIDs 检索对象(可以在创建时手动设置以匹配数据库id),则只需使用该getObjects方法即可.

摘自文档:

您还可以检索一组对象:

index.getObjects(['myObj1', 'myObj2'], function(err, content) {
  console.log(content);
});
Run Code Online (Sandbox Code Playgroud)

如果您尝试列出属于具有特定ID的组的所有记录,则可以使用包含此ID 的构面并对其进行过滤.

在您的记录中:

{
  "group_id": "3223212",
  // or
  "group_ids": ["3223212", "2423434"]
}
Run Code Online (Sandbox Code Playgroud)

在索引设置中:

{
  attributesForFaceting: [
    'onlyFilter(group_id)'
  ]
}
Run Code Online (Sandbox Code Playgroud)

在查询时:

let ids = ["3223212", "2423434"];
let filters = ids.map(id => `group_id:${id}`).join(' OR ');
index.search('', { filters: filters }, callback);
Run Code Online (Sandbox Code Playgroud)