我正在尝试将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
}
});
答案 0 :(得分:0)
根据filters
,有两种方法可以限制搜索。为此,您首先需要为城市添加一些可以过滤的单个属性attributesForFaceting
(在设置中,例如使用仪表板)。在这种情况下,我们可以使用neighbourhood.city
。
然后,在您网页上的InstantSearch中,您可以添加searchParameters
值:filters: 'neighbourhood.city:Philadelphia'
。
您还可以使用“安全API密钥”在实际启动页面之前优化此值。这将阻止某人获取该API密钥并自行搜索。请在docs
中详细了解相关内容