Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›Индексы API

API получения отображения поля

Новая справка API

Для получения самых актуальных данных API обратитесь к Индексы API.

Получает определения отображения для одного или нескольких полей. Для потоков данных API получает отображения полей для базовых индексов потока.

Этот API полезен, если вам не требуется полное отображение или если отображение индекса содержит большое количество полей.

resp = client.indices.get_field_mapping(
    index="my-index-000001",
    fields="user",
)
print(resp)
response = client.indices.get_field_mapping(
  index: 'my-index-000001',
  fields: 'user'
)
puts response
const response = await client.indices.getFieldMapping({
  index: "my-index-000001",
  fields: "user",
});
console.log(response);
GET /my-index-000001/_mapping/field/user

Запрос

GET /_mapping/field/<field>

GET /<target>/_mapping/field/<field>

Предварительные условия

  • Если включены функции безопасности Elasticsearch, у вас должна быть view_index_metadata или manage разрешение на доступ к индексу для целевого потока данных, индекса или псевдонима.

Параметры пути

<target>
(Необязательно, строка) Список потоков данных, индексов и псевдонимов через запятую для ограничения запроса. Поддерживаются подстановочные знаки (*). Для выбора всех потоков данных и индексов опустите этот параметр или используйте * или _all.
<field>
(Необязательно, строка) Список полей через запятую или выражение с подстановкой для ограничения возвращаемой информации.

Параметры запроса

allow_no_indices

(Необязательно, булево) Если false, запрос возвращает ошибку, если какое-либо выражение с подстановкой, псевдоним индекса или _all значение целевого только отсутствующих или закрытых индексов. Это поведение применимо даже если запрос направлен на другие открытые индексы. Например, запрос на foo*,bar* возвращает ошибку, если индекс начинается с foo, но ни один индекс не начинается с bar.

По умолчанию true.

expand_wildcards

(Необязательно, строка) Тип индекса, которому могут соответствовать шаблоны подстановки. Если запрос может направляться на потоки данных, этот аргумент определяет, соответствуют ли выражения с подстановкой скрытым потокам данных. Поддерживаются значения через запятую, такие как open,hidden. Допустимые значения:

all
Соответствует любому потоку данных или индексу, включая скрытые.
open
Соответствует открытым, нескрытым индексам. Также соответствует любому нескрытому потоку данных.
closed
Соответствует закрытым, нескрытым индексам. Также соответствует любому нескрытому потоку данных. Потоки данных не могут быть закрыты.
hidden
Соответствует скрытым потокам данных и скрытым индексам. Должно использоваться совместно с open, closed или обоими.
none
Шаблоны подстановки не принимаются.
ignore_unavailable
(Необязательно, булево) Если false, запрос возвращает ошибку, если он направлен на отсутствующий или закрытый индекс. По умолчанию false.
include_defaults
(Необязательно, булево) Если true, ответ включает значения по умолчанию для отображения. По умолчанию false.

Примеры

Пример с настройкой индекса

Вы можете предоставить отображения полей при создании нового индекса. Следующий запрос API создания индекса создаёт индекс publications с несколькими отображениями полей.

resp = client.indices.create(
    index="publications",
    mappings={
        "properties": {
            "id": {
                "type": "text"
            },
            "title": {
                "type": "text"
            },
            "abstract": {
                "type": "text"
            },
            "author": {
                "properties": {
                    "id": {
                        "type": "text"
                    },
                    "name": {
                        "type": "text"
                    }
                }
            }
        }
    },
)
print(resp)
response = client.indices.create(
  index: 'publications',
  body: {
    mappings: {
      properties: {
        id: {
          type: 'text'
        },
        title: {
          type: 'text'
        },
        abstract: {
          type: 'text'
        },
        author: {
          properties: {
            id: {
              type: 'text'
            },
            name: {
              type: 'text'
            }
          }
        }
      }
    }
  }
)
puts response
const response = await client.indices.create({
  index: "publications",
  mappings: {
    properties: {
      id: {
        type: "text",
      },
      title: {
        type: "text",
      },
      abstract: {
        type: "text",
      },
      author: {
        properties: {
          id: {
            type: "text",
          },
          name: {
            type: "text",
          },
        },
      },
    },
  },
});
console.log(response);
PUT /publications
{
  "mappings": {
    "properties": {
      "id": { "type": "text" },
      "title": { "type": "text" },
      "abstract": { "type": "text" },
      "author": {
        "properties": {
          "id": { "type": "text" },
          "name": { "type": "text" }
        }
      }
    }
  }
}

Следующий запрос возвращает отображение только поля title:

resp = client.indices.get_field_mapping(
    index="publications",
    fields="title",
)
print(resp)
response = client.indices.get_field_mapping(
  index: 'publications',
  fields: 'title'
)
puts response
const response = await client.indices.getFieldMapping({
  index: "publications",
  fields: "title",
});
console.log(response);
GET publications/_mapping/field/title

API возвращает следующий ответ:

{
   "publications": {
      "mappings": {
          "title": {
             "full_name": "title",
             "mapping": {
                "title": {
                   "type": "text"
                }
             }
          }
       }
   }
}

Указание полей

API получения отображения позволяет указать список полей через запятую.

Например, для выбора id поля author необходимо использовать его полное имя author.id.

resp = client.indices.get_field_mapping(
    index="publications",
    fields="author.id,abstract,name",
)
print(resp)
response = client.indices.get_field_mapping(
  index: 'publications',
  fields: 'author.id,abstract,name'
)
puts response
const response = await client.indices.getFieldMapping({
  index: "publications",
  fields: "author.id,abstract,name",
});
console.log(response);
GET publications/_mapping/field/author.id,abstract,name

возвращает:

{
   "publications": {
      "mappings": {
        "author.id": {
           "full_name": "author.id",
           "mapping": {
              "id": {
                 "type": "text"
              }
           }
        },
        "abstract": {
           "full_name": "abstract",
           "mapping": {
              "abstract": {
                 "type": "text"
              }
           }
        }
     }
   }
}

API получения отображения поля также поддерживает подстановочные знаки.

resp = client.indices.get_field_mapping(
    index="publications",
    fields="a*",
)
print(resp)
response = client.indices.get_field_mapping(
  index: 'publications',
  fields: 'a*'
)
puts response
const response = await client.indices.getFieldMapping({
  index: "publications",
  fields: "a*",
});
console.log(response);
GET publications/_mapping/field/a*

возвращает:

{
   "publications": {
      "mappings": {
         "author.name": {
            "full_name": "author.name",
            "mapping": {
               "name": {
                 "type": "text"
               }
            }
         },
         "abstract": {
            "full_name": "abstract",
            "mapping": {
               "abstract": {
                  "type": "text"
               }
            }
         },
         "author.id": {
            "full_name": "author.id",
            "mapping": {
               "id": {
                  "type": "text"
               }
            }
         }
      }
   }
}

Несколько целей и полей

API получения отображения поля может использоваться для получения отображений нескольких полей из нескольких потоков данных или индексов одним запросом.

Параметры пути <target> и <field> оба поддерживают списки через запятую и выражения с подстановкой.

Вы можете опустить параметр <target> или использовать значение * или _all, чтобы направить запрос на все потоки данных и индексы в кластере.

Аналогично, вы можете опустить параметр <field> или использовать значение *, чтобы получить отображения для всех полей в целевых потоках данных или индексах. Однако параметр <field> не поддерживает значение _all.

Например, следующий запрос получает отображения поля message в любом потоке данных или индексе с именем my-index-000001 или my-index-000002.

resp = client.indices.get_field_mapping(
    index="my-index-000001,my-index-000002",
    fields="message",
)
print(resp)
response = client.indices.get_field_mapping(
  index: 'my-index-000001,my-index-000002',
  fields: 'message'
)
puts response
const response = await client.indices.getFieldMapping({
  index: "my-index-000001,my-index-000002",
  fields: "message",
});
console.log(response);
GET /my-index-000001,my-index-000002/_mapping/field/message

Следующий запрос получает отображения полей message и user.id в любом потоке данных или индексе в кластере.

resp = client.indices.get_field_mapping(
    index="_all",
    fields="message",
)
print(resp)
response = client.indices.get_field_mapping(
  index: '_all',
  fields: 'message'
)
puts response
const response = await client.indices.getFieldMapping({
  index: "_all",
  fields: "message",
});
console.log(response);
GET /_all/_mapping/field/message

Следующий запрос получает отображения полей с свойством id в любом потоке данных или индексе в кластере.

resp = client.indices.get_field_mapping(
    index="_all",
    fields="*.id",
)
print(resp)
response = client.indices.get_field_mapping(
  index: '_all',
  fields: '*.id'
)
puts response
const response = await client.indices.getFieldMapping({
  index: "_all",
  fields: "*.id",
});
console.log(response);
GET /_all/_mapping/field/*.id

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/indices-get-field-mapping.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API