首页 > Web开发 > 详细

【JSON123】JSONPath

时间:2019-07-13 09:09:54      阅读:197      评论:0      收藏:0      [点我收藏+]

公司业务复杂度导致存储在ES Index Cache上的JSON数据深度嵌套。

使用DQSL查询语句无法快速准确的找到深层key-value元素。

 

JavaScript Object Notation, or JSON

 

1. ElasticSearch的QDSL(Query Domain Search Language)查询

https://www.elastic.co/guide/en/elasticsearch/guide/master/index.html

 

举例:搜索所有newType字段为1的数据:
GET mei_toutiao/_search
{
    "query" : {
        "constant_score" : {
            "filter" : {
                "bool" : {
                    "must" : {
                        "term" : {
                            "newType": "1"
                        }
                    }
                }
            }
        }
    }
}
12345678910111213141516
搜索所有newType字段不为1的数据:
GET mei_toutiao/_search
{
    "query" : {
        "constant_score" : {
            "filter" : {
                "bool" : {
                    "must_not" : {
                        "term" : {
                            "newType": "1"
                        }
                    }
                }
            }
        }
    }
}
12345678910111213141516
注意:
GET mei_toutiao/_search
{
    "query" : {
        "constant_score" : {
            "filter" : {
                "bool" : {
                    "must" : {
                        "match_phrase" : {
                            "userId": "1C210E82-21B7-4220-B267-ED3DA6635F6F"
                        }
                    }
                }
            }
        }
    }
}
12345678910111213141516
上面可以查到相应的数据,而下面却不行
GET mei_toutiao/_search
{
    "query" : {
        "constant_score" : {
            "filter" : {
                "bool" : {
                    "must" : {
                        "term" : {
                            "userId": "1C210E82-21B7-4220-B267-ED3DA6635F6F"
                        }
                    }
                }
            }
        }
    }
}
---------------------
作者:小强签名设计
来源:CSDN
原文:https://blog.csdn.net/m0_37739193/article/details/82388229
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

 

2. 了解下JSONPath,定位查询。

https://www.cnblogs.com/angle6-liu/p/10580792.html

JSONPath语法元素与XPath对应的完整概述和并排比较。

XpathJSONPath描述
/ $ 跟节点
. @ 现行节点
/ . or [] 取子节点
.. n/a 就是不管位置,选择所有符合条件的条件
* * 匹配所有元素节点
[] [] 迭代器标示(可以在里面做简单的迭代操作,如数组下标,根据内容选值等)
&#124 [,] 支持迭代器中做多选
[] ?() 支持过滤操作
n/a () 支持表达式计算
() n/a 分组,JsonPath不支持

【JSON123】JSONPath

原文:https://www.cnblogs.com/cathygx/p/11178896.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!