Скрытие общих полей в ответе ES

Есть ли способ скрыть некоторые из общих полей, которые возвращаются в качестве ответа ES.

например, если я получу ответ, как показано ниже:

{
  "took": 74,
  "timed_out": false,
  "_shards": {
    "total": 15,
    "successful": 15,
    "failed": 0
  },
  "hits": {
    "total": 24,
    "max_score": 0.15932977,
    "hits": [
      {
        "_index": "prashant",
        "_type": "session",
        "_id": "LeIDrUNmSKGC5Sl9Y8O0Zw",
        "_score": 0.15932977,
        "fields": {
          "Time": [
            "2014-01-08T15:01:26"
          ]
        }
      },
      {
        "_index": "prashant",
        "_type": "session",
        "_id": "dlpQGXk_TOyfNnUEG6skeQ",
        "_score": 0.14296037,
        "fields": {
          "Time": [
            "2014-01-08T15:01:26"
          ]
        }
      }
    ]
  }
}

Теперь я хочу, чтобы ES отвечал без значений took, timed_out, _shards,total, Success, failed. Мне не нужно имя _index, _type, поскольку я выполняю запрос к определенному индексу и типу.

Так есть ли способ отфильтровать ответ ES таким образом?


person Prashant    schedule 19.03.2014    source источник


Ответы (2)


Используйте "filter_path" параметр запроса. В вашем примере, чтобы включить только поля _source и _id для всех результатов (и тем самым исключить все остальные метаданные в ответе), используйте:

http://your-es-cluster?filter_path=hits.hits._source,hits.hits._id

Думаю, это было в остальных API с 1.6.

Для дальнейшей фильтрации и ограничения полей в _source используйте обычный _фильтрация исходного параметра. Например:

http://your-es-cluster?filter_path=hits.hits._source,hits.hits._id&_source=Time

person hubbardr    schedule 15.02.2016

Вы можете ограничить ответ поиска, указав поля, которые должны быть возвращены в части поискового запроса вашего запроса.

"search_request": {
  "fields": [ "title", "content" ],
  "query": ...
},

Это стандартный фильтр полей Elasticsearch, он не зависит от кластеризации. Помните, что вы должны включить поля, которые позже будут использоваться для кластеризации. См. документацию плагина ("Еще немного о сопоставлении полей").

person dawid.weiss    schedule 19.03.2014
comment
Есть ли способ отфильтровать общие возвращаемые поля, такие как _index, _type, которые одинаковы для всех записей, если я запускаю запрос для определенного индекса и типа - person Prashant; 19.03.2014