如何使用字段和子域数制作Elastic Search API(Query)

尼丁卡特里749

我想使用Elastic Search查询来获取(SUSPECT和CLEAR)API中每个状态的计数-Elastic Search中的数据看起来像-示例数据-

{
        "_index" : "index_name"
        "_type" : "_doc",
        "_id" : "id1",
        "_score" : 1.0,
        "_source" : {
          "slflag" : "SUSPECT",
          "state_name" : "UTTAR PRADESH",
        } 



{
        "_index" : "index_name",
        "_type" : "_doc",
        "_id" : id2",
        "_score" : 1.0,
        "_source" : {
          "slflag" : "CLEAR",
          "state_name" : "UTTAR PRADESH",
        }

{
        "_index" : "index_name"
        "_type" : "_doc",
        "_id" : "id3",
        "_score" : 1.0,
        "_source" : {
          "slflag" : "SUSPECT",
          "state_name" : "Delhi",
        } 



{
        "_index" : "index_name",
        "_type" : "_doc",
        "_id" : id4",
        "_score" : 1.0,
        "_source" : {
          "slflag" : "CLEAR",
          "state_name" : "Madhya Pradesh",
        }


{
        "_index" : "index_name"
        "_type" : "_doc",
        "_id" : "id5",
        "_score" : 1.0,
        "_source" : {
          "slflag" : "SUSPECT",
          "state_name" : "Rajasthan",
        } 



{
        "_index" : "index_name",
        "_type" : "_doc",
        "_id" : id6",
        "_score" : 1.0,
        "_source" : {
          "slflag" : "CLEAR",
          "state_name" : "Bihar",
        }

字段是-state_name,slflag在slflag字段中,我们有两个类别-“ SUSPECT”和“ CLEAR”

我想查询以获得这样的结果-

    {
        "stateName": "UTTAR PRADESH",
        "clear": 688,
        "suspect": 182
    },
    {
        "stateName": "Bihar",
        "clear": 398456,
        "suspect": 117110
    },
    {
        "stateName": "Rajasthan",
        "clear": 688,
        "suspect": 182
    },
    {
        "stateName": "Delhi",
        "clear": 12096,
        "suspect": 984
    }

我不知道如何为每个州计算slflag。

提前致谢。

获取/ index-

{
  "index" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "@timestamp" : {
          "type" : "date"
        },
        "@version" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "slflag" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "state_name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "wl_d_ind" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    },
    "settings" : {
      "index" : {
        "creation_date" : "1587554261571",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "zFKQmxyTSsyoVLRoCC_3IA",
        "version" : {
          "created" : "7060199"
        },
        "provided_name" : "index"
      }
    }
  }
}

我尝试了以下-

GET /index/_search
{
  "size": 0,
  "aggs": {
    "states": {
      "terms": {
        "field": "state_name.keyword",
        "size": 100
      },
      "aggs": {
        "flag": {
          "terms": {
            "field": "slflag.keyword"
          }
        }
      }
    }
  }
}

以上结果-

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 10000,
      "relation" : "gte"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "states" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : "UTTAR PRADESH",
          "doc_count" : 5403369,
          "flag" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : "CLEAR",
                "doc_count" : 4540278
              },
              {
                "key" : "SUSPECT",
                "doc_count" : 863091
              }
            ]
          }
        },
        {
          "key" : "RAJASTHAN",
          "doc_count" : 2239768,
          "flag" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : "CLEAR",
                "doc_count" : 1866196
              },
              {
                "key" : "SUSPECT",
                "doc_count" : 373572
              }
            ]
          }
        },
        {
          "key" : "GOA",
          "doc_count" : 12,
          "flag" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : "CLEAR",
                "doc_count" : 12
              }
            ]
          }
        }
      ]
    }
  }
}

您需要先在上聚合stateName,然后在上聚合slflag,如下所示:

GET index_name/_search?filter_path=**.key,**.doc_count
{
  "size": 0,
  "aggs": {
    "states": {
      "terms": {
        "field": "state_name.keyword",
        "size": 100
      },
      "aggs": {
        "flag": {
          "terms": {
            "field": "slflag.keyword"
          }
        }
      }
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Elastic Search Query with Java Api

来自分类Dev

如何使用Elastic Search Java API设置父/子关系?

来自分类Dev

将?search = query重写为/ search / query和分页

来自分类Dev

使用Elastic Search Java API进行AND查询

来自分类Dev

Google Search Console API,google.webmasters.searchanalytics.query“必须输入startDate字段”

来自分类Dev

我可以在不依赖 Elastic Search 的 npm 的情况下使用 Elastic Search RESTful API

来自分类Dev

我可以使用 Elastic Search Java API 按多个字段进行搜索吗?

来自分类Dev

用于搜索模板的Elastic Search Java API

来自分类Dev

如何使用AppEngine和Search API按DocId进行搜索?

来自分类Dev

使用 Elastic Search Python API 的 feild 最大值

来自分类Dev

如何更改由search:search API构成的cts:search查询的第一个参数?

来自分类Dev

Twitter Search API速率限制如何工作?

来自分类Dev

CodeIgniter Rest-Api : Multiple Like Query Search

来自分类Dev

无效的自定义@Query语法Spring Elastic Search

来自分类Dev

Hibernate Search query for class

来自分类Dev

Search query optimization in mysql

来自分类Dev

如何使用apache,passenger和rails服务api子域?

来自分类Dev

如何使用apache,passenger和rails服务api子域?

来自分类Dev

用于Elastic Search中distance_feature的Java API

来自分类Dev

Elastic Search 5.1-随机分数的Java API

来自分类Dev

如何使用Azure Search API进行多索引搜索?

来自分类Dev

如何使用GitHub Search API在GitHub fork中搜索代码?

来自分类Dev

如何使用Drupal 7 Search API在PHP中进行搜索?

来自分类Dev

CrossRef Search API是否支持跨域请求?

来自分类Dev

在Elastic Search中在query_string旁边使用过滤器

来自分类Dev

Drupal Search API自定义搜索字段顺序

来自分类Dev

如何使用tweepy.Cursor和api.search从Tweepy中提取Hashtag?

来自分类Dev

放置大量文档:Google App Engine和Search API

来自分类Dev

速率限制如何在Search API中的Twitter中工作

Related 相关文章

  1. 1

    Elastic Search Query with Java Api

  2. 2

    如何使用Elastic Search Java API设置父/子关系?

  3. 3

    将?search = query重写为/ search / query和分页

  4. 4

    使用Elastic Search Java API进行AND查询

  5. 5

    Google Search Console API,google.webmasters.searchanalytics.query“必须输入startDate字段”

  6. 6

    我可以在不依赖 Elastic Search 的 npm 的情况下使用 Elastic Search RESTful API

  7. 7

    我可以使用 Elastic Search Java API 按多个字段进行搜索吗?

  8. 8

    用于搜索模板的Elastic Search Java API

  9. 9

    如何使用AppEngine和Search API按DocId进行搜索?

  10. 10

    使用 Elastic Search Python API 的 feild 最大值

  11. 11

    如何更改由search:search API构成的cts:search查询的第一个参数?

  12. 12

    Twitter Search API速率限制如何工作?

  13. 13

    CodeIgniter Rest-Api : Multiple Like Query Search

  14. 14

    无效的自定义@Query语法Spring Elastic Search

  15. 15

    Hibernate Search query for class

  16. 16

    Search query optimization in mysql

  17. 17

    如何使用apache,passenger和rails服务api子域?

  18. 18

    如何使用apache,passenger和rails服务api子域?

  19. 19

    用于Elastic Search中distance_feature的Java API

  20. 20

    Elastic Search 5.1-随机分数的Java API

  21. 21

    如何使用Azure Search API进行多索引搜索?

  22. 22

    如何使用GitHub Search API在GitHub fork中搜索代码?

  23. 23

    如何使用Drupal 7 Search API在PHP中进行搜索?

  24. 24

    CrossRef Search API是否支持跨域请求?

  25. 25

    在Elastic Search中在query_string旁边使用过滤器

  26. 26

    Drupal Search API自定义搜索字段顺序

  27. 27

    如何使用tweepy.Cursor和api.search从Tweepy中提取Hashtag?

  28. 28

    放置大量文档:Google App Engine和Search API

  29. 29

    速率限制如何在Search API中的Twitter中工作

热门标签

归档