Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›Документы API

API многократного получения векторов терминов

Получает несколько векторов терминов с одним запросом.

resp = client.mtermvectors(
    docs=[
        {
            "_index": "my-index-000001",
            "_id": "2",
            "term_statistics": True
        },
        {
            "_index": "my-index-000001",
            "_id": "1",
            "fields": [
                "message"
            ]
        }
    ],
)
print(resp)
response = client.mtermvectors(
  body: {
    docs: [
      {
        _index: 'my-index-000001',
        _id: '2',
        term_statistics: true
      },
      {
        _index: 'my-index-000001',
        _id: '1',
        fields: [
          'message'
        ]
      }
    ]
  }
)
puts response
const response = await client.mtermvectors({
  docs: [
    {
      _index: "my-index-000001",
      _id: "2",
      term_statistics: true,
    },
    {
      _index: "my-index-000001",
      _id: "1",
      fields: ["message"],
    },
  ],
});
console.log(response);
POST /_mtermvectors
{
   "docs": [
      {
         "_index": "my-index-000001",
         "_id": "2",
         "term_statistics": true
      },
      {
         "_index": "my-index-000001",
         "_id": "1",
         "fields": [
            "message"
         ]
      }
   ]
}

Запрос

POST /_mtermvectors

POST /<index>/_mtermvectors

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

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

Описание

Вы можете указать существующие документы по индексу и ID или предоставить искусственные документы в теле запроса. Вы можете указать индекс в теле запроса или в URI запроса.

Ответ содержит массив docs со всеми полученными векторами терминов. Каждый элемент имеет структуру, предоставленную API векторов терминов.

Для получения дополнительной информации о содержащейся в ответе информации см. API векторов терминов.

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

<index>
(Необязательно, строка) Название индекса, содержащего документы.

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

fields

(Необязательно, строка) Список полей (разделенных запятыми) или выражения с подстановкой для включения в статистику.

Используется в качестве списка по умолчанию, если не указан конкретный список полей в параметрах completion_fields или fielddata_fields.

field_statistics
(Необязательно, логическое значение) Если true, ответ включает количество документов, сумму частот документов и сумму общих частот терминов. По умолчанию true.
<offsets>
(Необязательно, логическое значение) Если true, ответ включает смещения терминов. По умолчанию true.
payloads
(Необязательно, логическое значение) Если true, ответ включает данные терминов. По умолчанию true.
positions
(Необязательно, логическое значение) Если true, ответ включает позиции терминов. По умолчанию true.
preference
(Необязательно, строка) Указывает узел или фрагмент, на котором следует выполнить операцию. По умолчанию случайный.
routing
(Необязательно, строка) Пользовательское значение, используемое для маршрутизации операций на определенный фрагмент.
realtime
(Необязательно, логическое значение) Если true, запрос выполняется в реальном времени, а не в режиме почти реального времени. По умолчанию true. См. Режим реального времени.
term_statistics
(Необязательно, логическое значение) Если true, ответ включает частоту терминов и частоту документов. По умолчанию false.
version
(Необязательно, логическое значение) Если true, возвращает версию документа в составе результата.
version_type
(Необязательно, перечисление) Конкретный тип версии: external, external_gte.

Примеры

Если вы указываете индекс в URI запроса, индекс не нужно указывать для каждого документа в теле запроса:

resp = client.mtermvectors(
    index="my-index-000001",
    docs=[
        {
            "_id": "2",
            "fields": [
                "message"
            ],
            "term_statistics": True
        },
        {
            "_id": "1"
        }
    ],
)
print(resp)
response = client.mtermvectors(
  index: 'my-index-000001',
  body: {
    docs: [
      {
        _id: '2',
        fields: [
          'message'
        ],
        term_statistics: true
      },
      {
        _id: '1'
      }
    ]
  }
)
puts response
const response = await client.mtermvectors({
  index: "my-index-000001",
  docs: [
    {
      _id: "2",
      fields: ["message"],
      term_statistics: true,
    },
    {
      _id: "1",
    },
  ],
});
console.log(response);
POST /my-index-000001/_mtermvectors
{
   "docs": [
      {
         "_id": "2",
         "fields": [
            "message"
         ],
         "term_statistics": true
      },
      {
         "_id": "1"
      }
   ]
}

Если все запрашиваемые документы находятся в одном индексе и параметры одинаковы, можно использовать следующий упрощённый синтаксис:

resp = client.mtermvectors(
    index="my-index-000001",
    ids=[
        "1",
        "2"
    ],
    parameters={
        "fields": [
            "message"
        ],
        "term_statistics": True
    },
)
print(resp)
response = client.mtermvectors(
  index: 'my-index-000001',
  body: {
    ids: [
      '1',
      '2'
    ],
    parameters: {
      fields: [
        'message'
      ],
      term_statistics: true
    }
  }
)
puts response
const response = await client.mtermvectors({
  index: "my-index-000001",
  ids: ["1", "2"],
  parameters: {
    fields: ["message"],
    term_statistics: true,
  },
});
console.log(response);
POST /my-index-000001/_mtermvectors
{
  "ids": [ "1", "2" ],
  "parameters": {
    "fields": [
      "message"
    ],
    "term_statistics": true
  }
}

Искусственные документы

Вы также можете использовать mtermvectors для генерации векторов терминов для искусственных документов, предоставленных в теле запроса. Используемая схема определения определяется указанным _index.

resp = client.mtermvectors(
    docs=[
        {
            "_index": "my-index-000001",
            "doc": {
                "message": "test test test"
            }
        },
        {
            "_index": "my-index-000001",
            "doc": {
                "message": "Another test ..."
            }
        }
    ],
)
print(resp)
response = client.mtermvectors(
  body: {
    docs: [
      {
        _index: 'my-index-000001',
        doc: {
          message: 'test test test'
        }
      },
      {
        _index: 'my-index-000001',
        doc: {
          message: 'Another test ...'
        }
      }
    ]
  }
)
puts response
const response = await client.mtermvectors({
  docs: [
    {
      _index: "my-index-000001",
      doc: {
        message: "test test test",
      },
    },
    {
      _index: "my-index-000001",
      doc: {
        message: "Another test ...",
      },
    },
  ],
});
console.log(response);
POST /_mtermvectors
{
   "docs": [
      {
         "_index": "my-index-000001",
         "doc" : {
            "message" : "test test test"
         }
      },
      {
         "_index": "my-index-000001",
         "doc" : {
           "message" : "Another test ..."
         }
      }
   ]
}

© 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/docs-multi-termvectors.html

Spec-Zone.ru

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