業務場景:在文檔中存儲的數據有以下三個字段:dg,ws,ls 。這三個字段在同一文檔中僅有一個存在值,而ES在對該文檔序列化時,空值默認不進行序列化,目前只想查詢到dg或者ws有值的數據,如何查詢?
思考:在MySQL中,這種場景相當於某一字段不為null,而另兩個字段 is null。而我們已知ES對字段為空默認不進行序列化,所以如果是MySQL的話,相當於下面這種寫法:
select * from data_doc where dg is not null;
解決方案:在ES中,則可以通過exist,判斷某字段存在,寫法如下:
{
"query": {
"exists": {
"field": "dg"
}
}
}
最后修改於2020年4月12日 15:48:02