我需要从Algolia指数中收集一系列Facet值。 例如,这些是:“床”,“入住率”。和“地板”。
此刻,我有下面的代码,这些代码将进入我的Algolia表,抓住以上所有代码的所有可能值,但是我必须对每个代码进行查询。这导致对Algolia的3个网络呼叫。
index.searchForFacetValues(
{
facetName: val,
facetQuery: "",
maxFacetHits: 100,
query: "2019"
},
function(err, content) {
return content
})
有没有一种方法可以获取“床”,“入住率”的所有方面值。和“楼层”在一个查询中仅导致一个网络通话?
此外,我正在使用https://www.algolia.com/doc/api-client/getting-started/install/javascript/
答案 0 :(得分:0)
您可以使用空搜索并指定要为其接收值的方面:
client.search({
query: '',
facets: ['Beds', 'Occupancy', 'Floor'],
attributesToRetrieve: [], // a little optimisation for response transfer speed
});
响应将包含以下内容:
{
"facets": {
"Beds": {
"2": 1245,
"4": 893,
...
},
"Floor": {
...
},
...
}
}
因此facets
中的第一级键是您的构面名称,并且在每个嵌套的构面对象中,每个构面值/命中计数都有一个键/值。
如果您事先不知道要获取的构面名称列表,请在查询参数中使用facets: '*'
。