Algolia在范围内搜索

时间:2018-02-08 20:16:17

标签: algolia

我正在尝试将Algolia用于目录。我已经为包含以下数据的列表创建了一个巨大的索引:

{
  "id": 120,
  "listing_type": "restaurant",
  "location": "In example street, so so area",
  "brand":{
    "name": "Mc Donald's",
    "image":"1130824.jpg",
    "description": "Find fastest burgers and fries around. "
  },
  "neighbourhood":{
    "name": "Downtown",
    "city":{
      "name": "Philadelphia",
      "state": "PA"
    }
  },
  "_tags":["burgers","fries","fast food","quick service"],
  "has_deals": true,
  "images":["file1.jpg","file2.jpg"],
...
}

我想为每个城市创建单独的页面,并希望限制对该特定城市的搜索。我怎样才能做到这一点?

我可以在这里找到一个可以添加的参数:

var search = instantsearch({
    // Replace with your own values
    appId: 'xxxxxx',
    apiKey: 'xxxx', // search only API key, no ADMIN key
    indexName: 'listings',
    urlSync: true,
    searchParameters: {
        hitsPerPage: 10
    }
});

1 个答案:

答案 0 :(得分:0)

根据filters,有两种方法可以限制搜索。为此,您首先需要为城市添加一些可以过滤的单个属性attributesForFaceting(在设置中,例如使用仪表板)。在这种情况下,我们可以使用neighbourhood.city

然后,在您网页上的InstantSearch中,您可以添加searchParameters值:filters: 'neighbourhood.city:Philadelphia'

您还可以使用“安全API密钥”在实际启动页面之前优化此值。这将阻止某人获取该API密钥并自行搜索。请在docs

中详细了解相关内容