向 algolia 搜索发送多个术语
Send more than one term to algolia search
我正在我的网站上实施 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(例如过滤)来实现我的目标?
如果您尝试通过 objectID
s 检索对象(您可以在创建时手动设置以匹配您的数据库 id
s),您可以简单地使用 getObjects
method.
文档摘录:
You can also retrieve a set of objects:
index.getObjects(['myObj1', 'myObj2'], function(err, content) {
console.log(content);
});
如果您要列出属于具有特定 ID 的组的所有记录,您可以 use a facet 包含此 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);
我正在我的网站上实施 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(例如过滤)来实现我的目标?
如果您尝试通过 objectID
s 检索对象(您可以在创建时手动设置以匹配您的数据库 id
s),您可以简单地使用 getObjects
method.
文档摘录:
You can also retrieve a set of objects:
index.getObjects(['myObj1', 'myObj2'], function(err, content) { console.log(content); });
如果您要列出属于具有特定 ID 的组的所有记录,您可以 use a facet 包含此 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);