是否可以在 ElasticSearch 中使用带有列表的嵌套类型?一个例子就是我在想的是这样的
{
"name" : "Zach",
"car" : [
{
"make" : "Saturn",
"model" : "SL",
"colors": ["Red","Blue","Green"]
},
{
"make" : "Saturn",
"model" : "Imprezza",
"colors": ["Pink","Green"]
}
]
}
我将如何查询这样的 FF?
1) 我想询问所有人,他们的汽车是用“Saturn”“制造”的,颜色是“绿色”
2)我想查询所有人他们的汽车颜色是“绿色”还是“粉红色”
最佳答案
是的。以下是我的做法:
第 1 步。设置映射:
PUT /index_name
{
"mappings": {
"type_name": {
"properties": {
"name": {
"type": "string"
},
"car": {
"type": "nested",
"properties": {
"make": {
"type": "string"
},
"model": {
"type": "string"
},
"colors": {
"type": "string"
}
}
}
}
}
}
}
第 2 步。填充索引:
PUT /index_name/type_name/1
{
"name": "Zach",
"car": [
{
"make": "Saturn",
"model": "SL",
"colors": [
"Red",
"Blue",
"Green"
]
},
{
"make": "Saturn",
"model": "Imprezza",
"colors": [
"Pink",
"Green"
]
}
]
}
第三步,查询索引。 注意:您需要使用 bool query为了检索具有多个查询参数的文档。
GET /index_name/type_name/_search
{
"query": {
"nested": {
"path": "car",
"query": {
"bool": {
"must": [
{
"match": {
"make": "Saturn"
}
},
{
"match": {
"colors": "Green"
}
}
]
}
}
}
}
}
关于ElasticSearch Nested types with List Inside 嵌套类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520693/