我已经设置了instantsearch.js并创建了一个名为index的索引,如下所示:
{
"cities": [
"Boston"
],
"company": "Pineapple",
"countries": [
"United States",
"Canada"
],
"description": "Best pineapple in the world",
"highlight": true,
"productTypes": [
"Hard Drive"
],
"category": "Hardware",
"title": "Kiwi",
"objectID": "5"
}我还设置了autocomplete.js并创建了两个索引:location和country。
我是location
{
"cities": "San Francisco",
"objectID": "91961120"
}我是country
{
"countries": "Germany",
"objectID": "92132590"
}我已经让这两个函数分开工作,但我不知道如何同步它们。
我要寻找的行为是,用户可以在instantsearch.js的帮助下输入搜索,并使用autocomplete.js来选择一个位置或国家来过滤结果。或者,用户只需使用autocomplete.js按国家/地点过滤结果。
我创建了一个科德芬来显示我的代码。谢谢。
我知道我使用的命名约定不是最好的,它们将被改变。
发布于 2018-01-30 12:02:58
您需要确保在主索引中将cities和countries声明为attributesForFaceting。然后,您需要在初始的facets searchParameters of instantsearch上添加属性instantsearch。此属性将包含要使用的方面的名称(cities & countries)。从现在起,应该能够在属性上应用facet过滤器。
为了同步这两个实例,需要侦听autocomplete:selected事件。您还可能需要侦听输入上的change事件,并在没有值时清除筛选器。为了应用过滤器,您需要使用帮手,它是instantsearch用来管理状态的内部库。
我用上面解释的更改更新了您的科德芬。
https://stackoverflow.com/questions/48509905
复制相似问题