我正在我的网站中实现algolia搜索,我希望得到一组数据匹配我发送给搜索的任何ID,所以我需要知道如何向搜索发送多个参数,所以我可以发送一组id,如下所示:
let client = algoliasearch(APP_ID, API_KEY),
index = client.initIndex(INDEX_NAME);
let term=["3223212","2423434"];
index.search(term, callback)
现在这不行,有什么想法吗?甚至如何使用另一个algolia feautre来实现我的目标,例如过滤?
答案 0 :(得分:8)
如果您尝试按objectID
(您可以在创建时手动设置以匹配数据库id
)检索对象,则只需使用{{3 }}
摘自文档:
您还可以检索一组对象:
index.getObjects(['myObj1', 'myObj2'], function(err, content) { console.log(content); });
如果您尝试列出属于具有特定ID的群组的所有记录,则可以getObjects
method包含此ID并对其进行过滤。
在记录中:
{
"group_id": "3223212",
// or
"group_ids": ["3223212", "2423434"]
}
在索引设置中:
{
attributesForFaceting: [
'onlyFilter(group_id)'
]
}
在查询时:
let ids = ["3223212", "2423434"];
let filters = ids.map(id => `group_id:${id}`).join(' OR ');
index.search('', { filters: filters }, callback);