[英]elasticsearch dsl translated from sql can't working
在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"
得到正確的回應
city | c
----------------------------+---------------
Cleveland |2977
Cleveland Heights |179
Cleveland Hghts. |1
East Cleveland |4
Mayfield Heights (Cleveland)|1
但是將sql遷移到dsl
query=`curl -v -XPOST "http://$host/_xpack/sql/translate?format=json" -H'Content-Type: application/json' -d"$sql"`
得到以下:
{
"_source" : false,
"size" : 0,
"aggregations" : {
"groupby" : {
"composite" : {
"sources" : [
{
"2467" : {
"terms" : {
"order" : "asc",
"field" : "city.keyword",
"missing_bucket" : false
}
}
}
],
"size" : 1000
}
}
},
"stored_fields" : "_none_"
}
根據搜索請求執行翻譯后的dsl
curl -XGET "http://$host/antkrill.event/_search" -H 'Content-Type: application/json' -d"$query"
並得到錯誤
找不到字段[city.keyword],並且未設置[missing_bucket]
為什么用sql搜索就可以了,但是翻譯后的dsl錯誤
我自己的問題!第二個查詢是在不同的索引上使用翻譯后的dsl執行的!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.