我正在使用SearchKit(http://www.searchkit.co/)创建具有多面搜索的Elasticsearch搜索引擎。
让我们考虑一下Elasticsearch中的那些数据:
{
"name" : "Zach",
"car" : [
{
"make" : "Saturn",
"model" : "SL"
},
{
"make" : "Subaru",
"model" : "Imprezza"
}
]
}
{
"name" : "Bob",
"car" : [
{
"make" : "Saturn",
"model" : "Imprezza"
}
]
}
其中car是一个嵌套对象,而“ make” /“ model”是未索引的关键字。
我在Searchkit中设置了两个MenuFilter组件, 对于制造商和模型,都是这样的:
<MenuFilter id="make" listComponent={Select} title="make"
field="car.make" fieldOptions={{"type":"nested", options:
{"path":"car"}}} orderKey="_term" />
和
<MenuFilter id="model" listComponent={Select} title="model"
field="car.model" fieldOptions={{"type":"nested", options:
{"path":"car"}}} orderKey="_term" />
过滤器运行良好,但它们彼此之间无法通信,我想在两个方面之间建立动态关系,如果选择了“制造”,则只能得到与该“制造”相关的模型。 / p>
我看到Menu组件具有“ include”和“ bucketsTransform”道具, 但我不确定应如何将模型字段设置为已经从选择中过滤出结果。
注意:我可以使用“层次菜单”组件轻松完成此操作,但是我不希望这样做,因为该组件呈现为类别树,并且我希望有两个不同的选择框来逐步执行-步骤make =>模型搜索。