这是一个简单的用例,
我有一个将lucene查询发送到ElasticSearch的系统。我有Map
{
"mappings": {
"properties": {
"grocery_name":{
"type": "text"
},
"items": {
"type": "nested",
"properties": {
"name": {
"type": "text"
},
"stock": {
"type": "integer"
},
"category": {
"type": "text"
}
}
}
}
}
}
数据看起来像
{
"grocery_name": "Elastic Eats",
"items": [
{
"name": "banana",
"stock": "12",
"category": "fruit"
},
{
"name": "peach",
"stock": "10",
"category": "fruit"
},
{
"name": "carrot",
"stock": "9",
"category": "vegetable"
},
{
"name": "broccoli",
"stock": "5",
"category": "vegetable"
}
]
}
如何查询以获取项目名称为banana且stock>10的所有项目,在kql中,我可以编写如下代码 items:{ name:banana and stock > 10 }
1条答案
按热度按时间cetgtptt1#
lucene表达式语言不支持查询嵌套文档。这就是kql语言填补这一空白的原因。
这是目前通过kibana搜索栏查询嵌套文档的唯一方法。