Запрос с соответствием, чтобы получить все значения для данного поля! ElasticSearch - PullRequest
0 голосов
/ 23 апреля 2019

Я довольно новичок в упругом поиске и хотел бы написать запрос для всех значений определенного поля?Я имею в виду, скажем, у меня есть поля "Number" и "change_manager_group", есть запрос для выполнения списка всех номеров, из которых "change_manager_group = Change Managers - 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 голосов
/ 23 апреля 2019

Чтобы получить все документы, где 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"
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...