多词向量 API编辑

通过单个请求检索多个词向量。

response = client.mtermvectors(
  body: {
    docs: [
      {
        _index: 'my-index-000001',
        _id: '2',
        term_statistics: true
      },
      {
        _index: 'my-index-000001',
        _id: '1',
        fields: [
          'message'
        ]
      }
    ]
  }
)
puts 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 中指定了索引,则无需为请求正文中的每个文档指定索引

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

如果所有请求的文档都在同一个索引中并且参数相同,则可以使用以下简化语法

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

人工文档编辑

您还可以使用 mtermvectors 为请求正文中提供的*人工*文档生成词向量。使用的映射由指定的 _index 确定。

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