From b7b88cae7654aaec858d7c7a9fea1fe97faab5bb Mon Sep 17 00:00:00 2001 From: Haiyan Meng Date: Thu, 23 Jan 2020 16:04:55 -0800 Subject: [PATCH] Add curl commands for querying different filetypes --- .../crawl/search_cmds/creationTime.md | 211 +++++++++++++- api/internal/crawl/search_cmds/fileType.md | 178 ++++++++++++ .../crawl/search_cmds/repositoryUrl.md | 136 ++++++++- api/internal/crawl/search_cmds/user.md | 265 +++++++++++++++++- 4 files changed, 781 insertions(+), 9 deletions(-) diff --git a/api/internal/crawl/search_cmds/creationTime.md b/api/internal/crawl/search_cmds/creationTime.md index d7eafdc45..08b6b3e1e 100644 --- a/api/internal/crawl/search_cmds/creationTime.md +++ b/api/internal/crawl/search_cmds/creationTime.md @@ -46,7 +46,52 @@ curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'C "bool": { "must_not": { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } - } + }, + "filter": [ + { "regexp": { "fileType": "resource" }} + ] + } + }, + "aggs" : { + "min_creationTime" : { "min" : { "field" : "creationTime" } } + } +} +' +``` + +Find out the smallest value of the `creationTime` field of all kustomize generator files: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "generator" }} + ] + } + }, + "aggs" : { + "min_creationTime" : { "min" : { "field" : "creationTime" } } + } +} +' +``` + +Find out the smallest value of the `creationTime` field of all kustomize transformer files: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "transformer" }} + ] } }, "aggs" : { @@ -142,6 +187,61 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co "bool": { "must_not": [ { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ], + "filter": [ + { "regexp": { "fileType": "resource" }} + ] + } + }, + "aggs" : { + "newFiles_over_time" : { + "date_histogram" : { + "field" : "creationTime", + "interval" : "month" + } + } + } +} +' +``` + +Aggregate how many new kustomize generator files were added into Github each month: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": [ + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ], + "filter": [ + { "regexp": { "fileType": "generator" }} + ] + } + }, + "aggs" : { + "newFiles_over_time" : { + "date_histogram" : { + "field" : "creationTime", + "interval" : "month" + } + } + } +} +' +``` + +Aggregate how many new kustomize transformer files were added into Github each month: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": [ + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ], + "filter": [ + { "regexp": { "fileType": "transformer" }} ] } }, @@ -188,7 +288,10 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co "bool": { "must_not": [ { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} - ] + ], + "filter": [ + { "regexp": { "fileType": "resource" }} + ] } }, "aggs" : { @@ -201,4 +304,108 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co } } ' +``` + +Aggregate how many new kustomize generator files were added into Github each year: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": [ + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ], + "filter": [ + { "regexp": { "fileType": "generator" }} + ] + } + }, + "aggs" : { + "newFiles_over_time" : { + "date_histogram" : { + "field" : "creationTime", + "interval" : "year" + } + } + } +} +' +``` + +Aggregate how many new kustomize transformer files were added into Github each year: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": [ + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ], + "filter": [ + { "regexp": { "fileType": "transformer" }} + ] + } + }, + "aggs" : { + "newFiles_over_time" : { + "date_histogram" : { + "field" : "creationTime", + "interval" : "year" + } + } + } +} +' +``` + +Find the generator files created within the given time range: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "generator" }} + ], + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "must": { + "range": { + "creationTime": { + "gte": "2019-04-26T16:40:02.000Z", + "lte": "2019-04-26T16:40:02.000Z" + } + } + } + } + } +} +' +``` + +Find the transformer files created within the given time range: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "transformer" }} + ], + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "must": { + "range": { + "creationTime": { + "gte": "2019-04-26T16:40:02.000Z", + "lte": "2019-04-26T16:40:02.000Z" + } + } + } + } + } +} +' ``` \ No newline at end of file diff --git a/api/internal/crawl/search_cmds/fileType.md b/api/internal/crawl/search_cmds/fileType.md index c5c58357a..3be7b41e1 100644 --- a/api/internal/crawl/search_cmds/fileType.md +++ b/api/internal/crawl/search_cmds/fileType.md @@ -44,6 +44,184 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-T ' ``` +Search for all the kustomization files whose `fileType` field is `resource`: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }}, + { "regexp": { "fileType": "resource" }} + ] + } + } +} +' +``` + +Search for all the kustomize resource files: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "resource" }} + ], + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + } + } + } +} +' +``` + +Search all the kustomization files including a `generators` field: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "size": 10000, + "query": { + "bool": { + "must": { + "match" : { + "identifiers" : { + "query" : "generators" + } + } + }, + "filter": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + } + } + } +} +' +``` + +Search for all the documents whose `fileType` field is `generator`: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "generator" }} + ] + } + } +} +' +``` + +Search for all the kustomization files whose `fileType` field is `generator`: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }}, + { "regexp": { "fileType": "generator" }} + ] + } + } +} +' +``` + +Search for all the kustomize generator files: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "generator" }} + ], + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + } + } + } +} +' +``` + +Search all the kustomization files including a `transformers` field: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "size": 10000, + "query": { + "bool": { + "must": { + "match" : { + "identifiers" : { + "query" : "transformers" + } + } + }, + "filter": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + } + } + } +} +' +``` + +Search for all the documents whose `fileType` field is `transformer`: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "transformer" }} + ] + } + } +} +' +``` + +Search for all the kustomization files whose `fileType` field is `transformer`: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }}, + { "regexp": { "fileType": "transformer" }} + ] + } + } +} +' +``` + +Search for all the kustomize transformer files: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "transformer" }} + ], + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + } + } + } +} +' +``` + Count distinct values of the `fileType` field: ``` curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' diff --git a/api/internal/crawl/search_cmds/repositoryUrl.md b/api/internal/crawl/search_cmds/repositoryUrl.md index 9ce169929..37e99d088 100644 --- a/api/internal/crawl/search_cmds/repositoryUrl.md +++ b/api/internal/crawl/search_cmds/repositoryUrl.md @@ -37,16 +37,143 @@ curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'C ' ``` -Count how many Github repositories include kustomize resource files: +Count distinct values of the `repositoryUrl` field for all the kustomize resource files in the index: ``` curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' { "query": { "bool": { "must_not": { - "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "resource" }} + ] + } + }, + "aggs" : { + "repositoryUrl_count" : { + "cardinality" : { + "field" : "repositoryUrl", + "precision_threshold": 40000 } } + } +} +' +``` + +Count distinct values of the `repositoryUrl` field for all the kustomize generator files in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "generator" }} + ] + } + }, + "aggs" : { + "repositoryUrl_count" : { + "cardinality" : { + "field" : "repositoryUrl", + "precision_threshold": 40000 + } + } + } +} +' +``` + +Count distinct values of the `repositoryUrl` field for all the kustomize transformer files in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "transformer" }} + ] + } + }, + "aggs" : { + "repositoryUrl_count" : { + "cardinality" : { + "field" : "repositoryUrl", + "precision_threshold": 40000 + } + } + } +} +' +``` + +Count distinct values of the `repositoryUrl` field for all the kustomize resource dirs in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "resource" }}, + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ] + } + }, + "aggs" : { + "repositoryUrl_count" : { + "cardinality" : { + "field" : "repositoryUrl", + "precision_threshold": 40000 + } + } + } +} +' +``` + +Count distinct values of the `repositoryUrl` field for all the kustomize generator dirs in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "generator" }}, + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ] + } + }, + "aggs" : { + "repositoryUrl_count" : { + "cardinality" : { + "field" : "repositoryUrl", + "precision_threshold": 40000 + } + } + } +} +' +``` + +Count distinct values of the `repositoryUrl` field for all the kustomize transformer dirs in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "transformer" }}, + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ] + } }, "aggs" : { "repositoryUrl_count" : { @@ -109,7 +236,10 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co "bool": { "must_not": { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } - } + }, + "filter": [ + { "regexp": { "fileType": "resource" }} + ] } }, "aggs" : { diff --git a/api/internal/crawl/search_cmds/user.md b/api/internal/crawl/search_cmds/user.md index b8ae3538c..83f4cd2e5 100644 --- a/api/internal/crawl/search_cmds/user.md +++ b/api/internal/crawl/search_cmds/user.md @@ -67,7 +67,8 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co "aggs" : { "user" : { "terms" : { - "field" : "user" + "field" : "user", + "size" : 20 } } } @@ -75,6 +76,28 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co ' ``` +Count distinct values of the `user` field for all the kustomization files in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ] + } + }, + "aggs" : { + "user_count" : { + "cardinality" : { + "field" : "user", + "precision_threshold": 40000 + } + } + } +} +' +``` For all the kustomization files in the index, list all the values of the `user` field and the frequency of each value: @@ -91,7 +114,8 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co "aggs" : { "user" : { "terms" : { - "field" : "user" + "field" : "user", + "size": 20 } } } @@ -99,7 +123,33 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co ' ``` -For all the non-kustomization files in the index, list all the values of the +Count distinct values of the `user` field for all the kustomize resource files in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "resource" }} + ] + } + }, + "aggs" : { + "user_count" : { + "cardinality" : { + "field" : "user", + "precision_threshold": 40000 + } + } + } +} +' +``` + +For all the kustomize resource files in the index, list all the values of the `user` field and the frequency of each value: ``` curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' @@ -108,8 +158,215 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co "bool": { "must_not": { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "resource" }} + ] + } + }, + "aggs" : { + "user" : { + "terms" : { + "field" : "user", + "size": 20 } } + } +} +' +``` + +Count distinct values of the `user` field for all the kustomize generator files in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "generator" }} + ] + } + }, + "aggs" : { + "user_count" : { + "cardinality" : { + "field" : "user", + "precision_threshold": 40000 + } + } + } +} +' +``` + +For all the kustomize generator files in the index, list all the values of the +`user` field and the frequency of each value: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "generator" }} + ] + } + }, + "aggs" : { + "user" : { + "terms" : { + "field" : "user", + "size": 20 + } + } + } +} +' +``` + +Count distinct values of the `user` field for all the kustomize transformer files in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "transformer" }} + ] + } + }, + "aggs" : { + "user_count" : { + "cardinality" : { + "field" : "user", + "precision_threshold": 40000 + } + } + } +} +' +``` + +For all the kustomize transformer files in the index, list all the values of the +`user` field and the frequency of each value: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "must_not": { + "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" } + }, + "filter": [ + { "regexp": { "fileType": "transformer" }} + ] + } + }, + "aggs" : { + "user" : { + "terms" : { + "field" : "user", + "size": 20 + } + } + } +} +' +``` + +Count distinct values of the `user` field for all the kustomize generator dirs in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "generator" }}, + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ] + } + }, + "aggs" : { + "user_count" : { + "cardinality" : { + "field" : "user", + "precision_threshold": 40000 + } + } + } +} +' +``` + +For all the kustomize generator dirs in the index, list all the values of the +`user` field and the frequency of each value: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "generator" }}, + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ] + } + }, + "aggs" : { + "user" : { + "terms" : { + "field" : "user", + "size": 20 + } + } + } +} +' +``` + +Count distinct values of the `user` field for all the kustomize transformer dirs in the index: +``` +curl -X POST "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "transformer" }}, + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ] + } + }, + "aggs" : { + "user_count" : { + "cardinality" : { + "field" : "user", + "precision_threshold": 40000 + } + } + } +} +' +``` + +For all the kustomize transformer dirs in the index, list all the values of the +`user` field and the frequency of each value: +``` +curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Content-Type: application/json' -d' +{ + "query": { + "bool": { + "filter": [ + { "regexp": { "fileType": "transformer" }}, + { "regexp": { "filePath": "(.*/)?kustomization((.yaml)?|(.yml)?)(/)*" }} + ] + } }, "aggs" : { "user" : { @@ -120,4 +377,4 @@ curl -X GET "${ElasticSearchURL}:9200/${INDEXNAME}/_search?size=0&pretty" -H 'Co } } ' -``` +``` \ No newline at end of file