在阿尔戈利亚搜索多个方面值

时间:2019-01-10 17:10:39

标签: javascript algolia

我需要从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/

1 个答案:

答案 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: '*'