简体   繁体   English

从sql转换的elasticsearch dsl无法正常工作

[英]elasticsearch dsl translated from sql can't working

trying elasticsearch(6.4.2) sql rest api on yelp dataset, 在yelp数据集上尝试elasticsearch(6.4.2)sql rest api,

read -r -d '' sql <<'EOF'
{
    "query":"select city, COUNT(*) AS c from \"yelp.business\" group by city"
}
EOF

curl -v -XPOST "http://$host/_xpack/sql?format=txt" -H'Content-Type: application/json' -d"$sql"

get right response 得到正确的回应

            city            |       c
----------------------------+---------------
Cleveland                   |2977
Cleveland Heights           |179
Cleveland Hghts.            |1
East Cleveland              |4
Mayfield Heights (Cleveland)|1

but tranlsate sql to dsl 但是将sql迁移到dsl

query=`curl -v -XPOST "http://$host/_xpack/sql/translate?format=json" -H'Content-Type: application/json' -d"$sql"`

get following: 得到以下:

{
   "_source" : false,
   "size" : 0,
   "aggregations" : {
      "groupby" : {
         "composite" : {
            "sources" : [
               {
                  "2467" : {
                     "terms" : {
                        "order" : "asc",
                        "field" : "city.keyword",
                        "missing_bucket" : false
                     }
                  }
               }
            ],
            "size" : 1000
         }
      }
   },
   "stored_fields" : "_none_"
}

execute translated dsl on search request 根据搜索请求执行翻译后的dsl

curl -XGET "http://$host/antkrill.event/_search" -H 'Content-Type: application/json' -d"$query"

and get error 并得到错误

failed to find field [city.keyword] and [missing_bucket] is not set 找不到字段[city.keyword],并且未设置[missing_bucket]

why search with sql is ok, but error with translated dsl 为什么用sql搜索就可以了,但是翻译后的dsl错误

我自己的问题!第二个查询是在不同的索引上使用翻译后的dsl执行的!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM