elasticsearch中几种常用的脚本操作

2020-03-16  本文已影响0人  levylll

1.long类型根据最后一位进行匹配过滤,主要是用来取不同尾号的数据统计

{
    "aggs": {
        "source_count": {
            "terms": {
                "field": "user_id",
                "size": 10
            }
        }
    },
    "query": {
        "bool": {
            "must": [
                {
                    "range": {
                        "create_time": {
                            "gte": 1584028800000,
                            "lte": 1584115200000
                        }
                    }
                },
                {
                    "term": {
                        "s_id": "1"
                    }
                },
                {
                    "script": {
                        "script": {
                            "source": "doc['user_id'].value % 10 == params.param1",
                            "lang": "painless",
                            "params": {
                                "param1": 0
                            }
                        }
                    }
                }
            ]
        }
    }
}

2.针对不同尾号进行aggragation

{    "query": {
        "bool": {
            "must": [
                {
                    "range": {
                        "create_time": {
                            "gte": 1584028800000,
                            "lte": 1584115200000
                        }
                    }
                },
                {
                    "term": {
                        "s_id": "1"
                    }
                }
            ]
        }
    },
    "aggs": {
        "source_count": {
            "terms": {
            "script": {
                "lang": "painless",
                "source": "doc['user_id'].value %10"
            }
            }
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读