用match查询以获取给定字段的所有值!弹性搜索

时间:2019-04-23 15:36:07

标签: elasticsearch nested

我是弹性搜索的新手,想为特定字段的所有值编写查询吗?我的意思是说我有一个字段“ Number”和“ change_manager_group”,是否有一个查询来执行列出其中“ change_manager_group =变更经理-2”的所有号码

  {
   "took" : 2,
   "timed_out" : false,
   "_shards" : {
    "total" : 10,
    "successful" : 10,
    "skipped" : 0,
    "failed" : 0
    },
    "hits" : {
      "total" : 1700,
      "max_score" : 1.0,
      "hits" : [
        {
    "_index" : "test-tem-changes",
    "_type" : "_doc",
    "_id" : "CHG0393073_1554800400000",
    "_score" : 1.0,
    "_source" : {
      "work_notes" : "",
      "priority" : "4 - Low",
      "planned_start" : 1554800400000,
      "Updated_by" : "system",
      "Updated" : 1554819333000,
      "phase" : "Requested",
      "Number" : "CHG0312373",
      "change_manager_group" : "Change Managers - 1",
      "approval" : "Approved",
      "downtime" : "false",
      "close_notes" : "",
      "Standard_template_version" : "",
      "close_code" : null,
      "actual_start" : 1554819333000,
      "closed_by" : "",
      "Type" : "Normal"
    }
  },
  {
    "_index" : "test-tem-changes",
    "_type" : "_doc",
    "_id" : "CHG0406522_0",
    "_score" : 1.0,
    "_source" : {
      "work_notes" : "",
      "priority" : "4 - Low",
      "planned_start" : 0,
      "Updated_by" : "svcmdeploy_automation",
      "Updated" : 1553320559000,
      "phase" : "Requested",
      "Number" : "CHG041232",
      "change_manager_group" : "Change Managers - 2",
      "approval" : "Approved",
      "downtime" : "false",
      "close_notes" : "Change Installed",
      "Standard_template_version" : "",
      "close_code" : "Successful",
      "actual_start" : 1553338188000,
      "closed_by" : "",
      "Type" : "Automated"
    }
  },
  {
    "_index" : "test-tem-changes",
    "_type" : "_doc",
    "_id" : "CHG0406526_0",
    "_score" : 1.0,
    "_source" : {
      "work_notes" : "",
      "priority" : "4 - Low",
      "planned_start" : 0,
      "Updated_by" : "svcmdeploy_automation",
      "Updated" : 1553321854000,
      "phase" : "Requested",
      "Number" : "CHG0412326",
      "change_manager_group" : "Change Managers - 2",
      "approval" : "Approved",
      "downtime" : "false",
      "close_notes" : "Change Installed",
      "Standard_template_version" : "",
      "close_code" : "Successful",
      "actual_start" : 1553339629000,
      "closed_by" : "",
      "Type" : "Automated"
    }
  },

我在进行了一些谷歌搜索后尝试了此操作,但是出现了错误

curl -XGET  "http://localhost:9200/test-tem-changes/_search?pretty=true" -H 'Content-Type: application/json' -d '
> {
>     "query" : { "Number" : {"query" : "*"} }
> }
> '

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

要在change_manager_group ==Change Managers - 2要使用Term Query的位置获取所有文档。下面,我将其包装在filter上下文中,以便更快(不得分相关性)。

如果change_manager_group不是keyword映射字段,则可能需要根据映射使用change_manager_group.keyword

GET test-tem-changes/_search
{
  "query": {
    "bool": {
      "filter": {
        "term": {
          "change_manager_group": "Change Managers - 2"
        }
      }
    }
  }
}