我想为具有动态属性的嵌套类型动态创建构面。
假设这些文章在我的索引中,并且我正在搜索名称和品牌:
{
name: iPhone 16GB
brand: Apple
type: Smartphone
attributes: {
Color: White
}
}
{
name: iPad
brand: Apple
type: Tablet
attributes: {
Color: Black
}
}
{
name: Cruzer USB 16GB
brand: SanDisk
type: USB-Stick
attributes: {
Color: Black
Capacity: 16GB
USB-Standard: USB 2.0
}
}
{
name: Cruzer USB 16GB
brand: SanDisk
type: USB-Stick
attributes: {
Color: Red
Capacity: 16GB
USB-Standard: USB 3.0
}
}
现在,如果我正在搜索“Apple”,我希望搜索结果具有以下方面:
Brand:
Apple 2
Type:
Smartphone 1
Tablet 1
Color:
Black 1
White 1
搜索“16GB”应包含以下方面:
Brand:
Apple 1
SanDisk 2
Type:
Smartphone 1
USB-Stick 2
Color:
Black 1
White 1
Red 1
Capacity:
16GB 2
USB-Standard:
USB 3.0 1
USB 2.0 2
同样,每篇文章都可以有任意属性。
对于品牌和类型的分层搜索很容易,但我怎么能为attrubutes做呢?弹性搜索是否可以实现这一点?
我希望你能说出我的意思......
答案 0 :(得分:0)
尝试使用以下
POST _search
{
"query": {
"query_string": {
"query": "Apple"
}
},
"facets": {
"tags": {
"terms": {
"fields": ["name","brand","type","attributes.Color"]
}
}
}
}