Сократить данные, возвращаемые ElasticSearch - PullRequest
0 голосов
/ 25 апреля 2018

У меня следующий запрос.

GET sales/_search
{
  "query": {
    "terms": {
      "ean":  ["8719092410766", "8719092444716"]
    }
  }, 
  "_source": ["ean"],
  "size": 10000
}

Что дает мне следующий результат.

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 3,
    "max_score": 1,
    "hits": [
      {
        "_index": "sales",
        "_type": "doc",
        "_id": "CuDvcGIBmw7bqEEVBvZq",
        "_score": 1,
        "_source": {
          "ean": "8719092444716"
        }
      },
      {
        "_index": "sales",
        "_type": "doc",
        "_id": "DeDvcGIBmw7bqEEVBvZq",
        "_score": 1,
        "_source": {
          "ean": "8719092410766"
        }
      },
      {
        "_index": "sales",
        "_type": "doc",
        "_id": "9yHvcGIBbx4s3M8zD9_u",
        "_score": 1,
        "_source": {
          "ean": "8719092410766"
        }
      }
    ]
  }
}

Это много данных, и меня интересуют только источники. То, что я хотел бы вернуть это:

["8719092444716", "8719092410766"]

Или как можно ближе к нему. Есть ли уловка, которую я могу использовать, чтобы уменьшить объем данных, извлекаемых из базы данных? Я читал о filter_path, но ElasticSearch 6.0, похоже, не распознает это ключевое слово.

1 Ответ

0 голосов
/ 25 апреля 2018

Как вы упомянули, вы можете использовать filter_path ( docs ), который можно добавить к URL-адресу вашего запроса и указать (через запятую) компоненты данных, которые вы хотите включить в ответе.Например, если вас интересуют только совпадения и ни одна из метрик ES, вы могли бы сделать (пример curl)

curl http://localhost:9200/index01/type01/_search?filter_path=hits.hits

и получить следующий ответ

{
   "hits" : {
      "hits" : [
         {
            "_index" : "index01",
            "_id" : "6PHE_WIBts_g9zk4nzM5",
            "_type" : "type01",
            "_source" : {
               "title" : "Radioactive Honeycomb"
            },
            "_score" : 1
         }
      ]
   }
}

Hopeэто помогает (я использую ES 6.0 кстати).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...