首页 > 其他 > 详细

Elastic Search模板生成器

时间:2020-09-30 00:16:21      阅读:69      评论:0      收藏:0      [点我收藏+]

最近写了一个Elastic Search查询DSL的生成代码。代码如下

 

使用方式类似于dapper,要配套一个Json模板来使用,基本就是elastic search的查询语法,知识将需要注入的参数改为用@开头的占位字符串。

{
    "query": {
        "bool": {
            "must": [
                { "term": { "Status""@status" } },
                { "term": { "Name""@name" } }
            ]
        }
    }
}

填充参数,会自动生成对应的json文件(ES的查询body)。

QueryBuilder.Build(template, new {status = "ok"name="jim"});

执行效果如下:

{
    "query": {
        "bool": {
            "must": [
                { "term": { "Status""ok" } },
                { "term": { "Name""jim" } }
            ]
        }
    }
}

支持各种json类型,可以直接配置es查询模板。并且,当属性没有传入时,会自动将其从查询条件中去掉,非常方便,例如:

QueryBuilder.Build(template, new {status = "ok"});

生成结果如下:

{
    "query": {
        "bool": {
            "must": [
                { "term": { "Status""ok" } }
            ]
        }
    }
}

这个方式比较适合于:查询条件随着输入参数动态增删,并且查询条件经常需要修改的场景: 当查询条件变化时,只需要修改模板即可,不需要修改代码,并且可读性非常好。也能根据参数自适应查询条件的增删。

Elastic Search模板生成器

原文:https://www.cnblogs.com/TianFang/p/13752464.html

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