多词项向量 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_fieldsfielddata_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
(可选,枚举)特定版本类型:externalexternal_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 ..."
         }
      }
   ]
}