1. 针对hive表中jsonObject类型的String数据
mapping中定义如下:
"esf_room": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
},
"norms": false
},
DSL查询语句如下:
GET /hdp_teu_dia_face_smart_muid_20191111/_search
{
"query": {
"bool":{
"must": [
{"match": {
"esf_room": "一室"
}},
{
"term": {
"esf_room": {
"value": "1"
}
}
}
]
}
},
"_source": "esf_room"
}
这样既可以查询出esf_room中key为“一室”的所有记录,也可以通过term来查询esf_room中key为“一室”,并且值为“1”的所有记录。
2. 查询出userPackageId字段(数组类型)中元素大于2的所有文档
GET hdp_teu_dia_face_smart_wimei_20191114/_search
{
"query": {
"bool": {
"filter": {
"script": {
"script": {
"source": "doc['userPackageId'].length > 2",
"lang": "painless"
}
}
}
}
}
}
3. 查询出当前索引下,_source中包含XX字段的所有记录
GET hdp_teu_dia_face_smart_wuser_20200322/_search
{
"query": {
"exists": {
"field":"bicbdzp_service_begin_date"
}
}
}
好