IBM Cloud Docs
API 版本比较

API 版本比较

对于大多数 API 方法,请求参数和响应主体在 v1 和 v2之间有所不同。 了解可用于执行 v1 API 支持的操作的等效或备用 v2 方法。

比较信息假定您正在使用最新版本的 v1 API (版本 2019-04-30),并将其与最新版本的 v2 API (版本 2020-08-30) 进行比较。

环境

v2中没有 环境 的概念。 部署详细信息 (例如,大小和索引容量) 根据服务计划类型进行管理。 在 v2中,集合组织在项目中。 您可以创建不同类型的项目,以将缺省配置设置应用于添加到项目的集合。

v2 中没有对应于 v1 环境方法的等效方法。 但是,下表显示了提供与相应 v1 方法类似的功能的 v2 方法。 针对每种方法返回的受支持参数和响应主体也不同。

环境 API 操作支持详细信息
操作 v1 API 相关 v2 API
创建环境 POST /v1/environments POST /v2/projects
列出环境 GET /v1/environments GET /v2/projects
获取环境信息 GET /v1/environments/{environment_id} GET /v2/projects/{project_id}
更新环境 PUT /v1/environments/{environment_id} POST /v2/projects/{project_id}
v2 使用 POST 而不是 PUT
删除环境 DELETE /v1/environment/{environment_id} DELETE /v2/projects/{project_id}
列出集合中的字段 GET /v1/environments/{environment_id}/fields GET /v2/projects/{project_id}/fields

配置

v2 API 没有专用于配置的端点。 而是直接在 API 中为这些对象指定项目,集合和查询的配置设置。 并非 v1 中可用的所有配置参数都在 v2中可用或适用。

v1 配置 API 中,用于指定配置对象的 JSON 对象包含若干参数,这些参数的格式与其他 v2 端点不同,或者在 v2中不可用。 下表描述了如何在 v2中查找相关参数。

在采集过程中,无法像在 v1中一样在 v2 中定制文档转换。

配置设置详细信息
v1 配置参数 v2 API
"conversions.html": { ... } 不可用
"conversions.image_text_recognition": { ... } 无法从 API 获取。 但是,您可以对产品用户界面中的集合启用光学字符识别 (OCR) 以从图像中抽取文本。 OCR 也有其他好处。 例如,如果无法处理文档中的页面,那么 OCR 会将该页面转换为图像并对其进行扫描,以确保成功上载该文档。
"conversions.json_normalizations": { ... } 已移至 集合 API
"conversions.pdf": { ... } 不可用。 如果使用特殊参数从 PDF 中的图像抽取文本,请改为从包含 PDF 的集合的产品用户界面启用光学字符识别 (OCR)。
"conversions.segment": { ... } 以编程方式不可用。 您可以在每次出现 SDU 生成的字段 (例如,产品用户界面中的 subtitle ) 时拆分文档。
具有 parent_ididtotal_segments 信息的 segment_metadata 对象在 v2中不可用。 您可以使用 metadata.parent_document_id 字段来查找许多文档段的公共父代。
"conversions.word": { ... } 不可用
"enrichments": { ... } /v2/projects/{project_id}/enrichments/v2/projects/{project_id}/collections/{collection_id}
使用扩充项 API 来探索现有扩充项。 使用集合 API 来查看和更改在集合中的字段上启用的扩充项。
缺省情况下,某些扩充项将根据您创建的项目类型应用于服务。 有关更多详细信息,请参阅 缺省项目设置
v2 中提供的实体扩充项版本不包含 disambiguation 字段,该字段在 v1 中包含实体的消岐信息,并包含实体子类型信息。
以下扩充项在 v2:
-类别
-概念
-情感
-关系
-语义角色
-实体观点
-关键字观点
"normalizations": [ ... ] 已移至 集合 API
"source": { ... } 不可用。 通过用户界面配置与外部数据源的连接。 有关更多信息,请参阅 创建集合

集合

集合 API 支持详细信息
操作 v1 API v2 API
创建集合 POST /v1/environments/{environment_id}/collections POST /v2/projects/{project_id}/collections
受支持的参数和响应在两个版本之间有所不同。 请参阅 集合注释(collection notes)
列出集合 GET /v1/environments/{environment_id}/collections GET /v2/projects/{project_id}/collections
在 v2中,列表中仅返回每个集合的集合标识和名称。 必须使用 获取集合 方法来返回有关每个集合的更多详细信息。
获取集合详细信息 GET /v1/environments/{environment_id}/collections/{collection_id} GET /v2/projects/{project_id}/collections/{collection_id}
请参阅 集合说明
更新集合 PUT /v1/environments/{environment_id}/collections/{collection_id} POST /v2/projects/{project_id}/collections/{collection_id}
删除集合 DELETE /v1/environments/{environment_id}/collections/{collection_id} DELETE /v2/projects/{project_id}/collections/{collection_id}
在 v2中,不会在响应中返回 status 字段。
列表集合字段 GET /v1/environments/{environment_id}/collections/{collection_id}/fields
v1 列出每个集合的字段。
GET /v2/projects/{project_id}/fields
v2 列出每个项目的字段。 您可以使用 collection_ids 参数传递单个集合标识,以从单个集合获取字段。

集合 API 注释

下表显示了 v1 和 v2 集合 API 之间的重要差异。

集合 API 说明
方法 注释
创建集合 v2 响应不包含 statusconfiguration_id 字段。 您可以使用 获取文档详细信息 方法来获取特定文档的状态信息。
对象 disk_usagetraining_statuscrawl_status 在 v2中的响应主体中不存在。 响应主体中当前不存在 v2 中的 document_counts 对象。 在 Get project 方法响应中返回训练状态。 其他信息在 v2中不可用。 在 v2中,可以通过指定可选 enrichments 对象来定义要应用于集合中文档的扩充项。
获取集合详细信息 v2 响应不包含 statusconfiguration_id 字段。 您可以使用 获取文档详细信息 方法来获取特定文档的状态信息。
对象 document_countsdisk_usagetraining_statuscrawl_status 在 v2中的响应主体中不存在。 在 Get project 方法响应中返回训练状态。 其他信息在 v2中不可用。 例如,您无法获取集合的文档计数,也无法获取连接到 v2中的外部数据源的集合的搜寻状态。 在 v2中,可以获取有关应用于集合的扩充项的信息。
更新集合 v2 使用 POST 而不是 PUT。 在 v2中,可以通过指定可选 enrichments 对象来更新应用于集合中文档的扩充项。
v2 响应不包含 statusconfiguration_id 字段。

查询修改

v1 中提供的用于以编程方式配置标记化的方法在 v2 API 中不受支持。

查询修改 API 支持详细信息
v1 API v2 API
令牌化字典 API 不可用。
扩展 v1 API 扩展 v2 API
停用词 v1 API 停用词 v2 API

文档

文档 API 支持详细信息
操作 v1 API v2 API
列出文档 从 v1 API 不可用 GET /v2/projects/{project_id}/collections/{collection_id}/documents
创建文档 POST /v1/environments/{environment_id}/collections/{collection_id}/documents POST /v2/projects/{project_id}/collections/{collection_id}/documents
与 v1不同, v2 响应不包含通知对象。 但是,您可以使用 v2中的 获取文档详细信息 方法来获取通知信息。
更新文档 POST /v1/environments/{environment_id}/collections /{collection_id}/documents/{document_id} POST /v2/projects/{project_id}/collections/{collection_id}/documents/{document_id}
更新已拆分的文档时,将覆盖所有文档段。
获取文档详细信息 GET /v1/environments/{environment_id}/collections /{collection_id}/documents/{document_id} GET /v2/projects/{project_id}/collections/{collection_id}/documents/{document_id}
在 v2中,没有 statusDescription。 v2 具有 children 对象,其中包含有关与采集期间生成的子文档相关联的任何通知的信息。
删除文档 DELETE /v1/environments/{environment_id}/collections /{collection_id}/documents/{document_id} DELETE /v2/projects/{project_id}/collections/{collection_id}/documents/{document_id}
无法单独删除已上载文档的分段。 使用包含段结果的 parent_document_id 的 DELETE 请求删除所有段。

v2 引入了名为 X-Watson-Discovery-Force 且在 v1中不可用的定制头。 对多个集合中共享的数据执行操作时,必须包含头,以指示要在每个集合中执行该操作。 如果不包含头,那么将返回 403 错误。

在 v1 和 v2之间的采集期间,将以不同方式转换添加到集合的 JSON 文件中的字段。 有关如何在 v2 索引中存储 JSON 文件的更多信息,请参阅 JSON 文件

查询数

文档 API 支持详细信息
操作 v1 API v2 API
查询集合 支持 GET 或 POST 请求。
GET 或 POST /v1/environments/{environment_id}/collections/{collection_id}/query
查询项目。 要指定单个集合,请包含 {collection_id} 参数。 仅支持 POST 请求。
POST /v2/projects/{project_id}/query
查询多个集合 GET 或 POST /v1/environments/{environment_id}/query POST /v2/projects/{project_id}/query
查询系统声明 GET /v1/environments/{environment_id}/collections/{collection_id}/通知 GET /v2/projects/{project_id}/collections/{collection_id}/通知
查询多个收集系统通知 GET /v1/environments/{environment_id}/通知 GET /v2/projects/{project_id}/ 通知
获取自动补全建议 /v1/environments/{environment_id}/collections/{collection_id}/auto完成 GET /v2/projects/{project_id}/auto补全
请参阅 查询说明

缺省情况下,某些查询结果配置将根据您创建的项目类型应用于服务。 有关更多详细信息,请参阅 缺省项目设置

查询注释

  • v2 查询将返回项目中所有集合的结果。 要将查询限制为仅使用项目中的特定集合,请使用 collection_ids 查询参数。 无法使用一个 v2 查询请求来查询添加到不同项目的多个集合。

  • v2 结果包含 confidence 字段,但不包含 score 字段。

    置信度分数替换了 v1中的分数信息,但保留了分数以实现向后兼容性。 在 v2中,仅返回置信度字段。

  • 使用 POST 调用 (而不是 GET 调用) 来提交具有 v2的查询。

  • v1 查询接受许多参数。 查询参数比较 表将 v1 参数映射到 v2 参数。

    查询参数比较
    v1 参数 v2 参数 注释
    不适用 collection_ids 在 v2 中使用此参数来指定集合标识。
    过滤器 过滤器 相同的表达式语言。
    查询 查询 相同的表达式语言。
    natural_language_query natural_language_query 无注释。
    passages passages 通道格式已更改,并在 v2中进行了增强。 passages:true 参数已更改为 passages.enable:true。 除了 countcharactersfields 选项外,您还可以指定 per_document(按文档质量对文档进行排序),然后返回每个文档排名最高的段落。 您还可以指定 find_answers 以返回每个段落的答案对象,其中包含查询的简明答案。
    汇总 汇总 相同的表达式语言。
    计数 计数 无注释。
    offset offset 无注释。
    return return 无注释。
    排序 排序 无注释。
    突出显示 突出显示 如果 passages.enabledpassages.per_documenttrue,那么将针对每个文档返回段落而不是突出显示。
    spelling_建议 spelling_建议 无注释。
    删除重复数据 不适用 v2 中不支持。
    similar similar 在 v2中更改了格式。 similar:true 参数已更改为 similar.enable:truedocument_idsfields 参数已从字符串更改为字符串数组。 如果 enabled 为 true,那么现在需要 document_ids 参数。
    偏差 不适用 v2 中不支持。

训练数据

可以使用 v1 训练数据 API 来处理两个相关对象:

  • 训练的查询
  • 用于训练查询的示例

这两个对象在 v1中具有单独的 API 端点。 在 v2中,用于训练每个查询的示例与查询一起提供,只有一个端点用于处理训练数据。

例如,要在 v2中添加已训练的查询及其训练示例文档,请使用请求 POST /v2/projects/{project_id}/training_data/queries 并在一个调用的有效内容中传递查询和所有示例。 同样,如果要在 v2中更新训练集中的一个示例,那么必须将查询和修改后的示例 (以及所有其他示例) 传递到 v2 更新端点。 在 v1中,要更新示例信息,请使用更新示例端点仅修改一个示例。

v1 与 v2 之间的另一个重要差别在于,在 v1中,训练的模型与特定集合相关联。 在 v2中,已训练的模型与项目相关联。 您可以使用项目中多个集合中的数据来训练相关性模型。 在 v2中创建或更新训练示例时,API 需要用于存储文档的集合的 collection_id

训练数据 API 支持详细信息
操作 v1 API v2 API
列出训练数据 GET /v1/environments/{environment_id}/collections/{collection_id}/training_data GET /v2/projects/{project_id}/training_data /queries
在训练数据中添加查询 POST /v1/environments/{environment_id}/collections/{collection_id}/training_data POST /v2/projects/{project_id}/training_data /queries
删除所有训练数据 DELETE /v1/environments/{environment_id}/collections/{collection_id}/training_data DELETE /v2/projects/{project_id}/training_data /queries
获取查询的详细信息 GET /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id} GET /v2/projects/{project_id}/training_data /queries/{query_id}
删除训练数据查询 DELETE /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id} DELETE /v2/projects/{project_id}/training_data /queries/{query_id}
列出训练数据查询的示例 GET /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples GET /v2/projects/{project_id}/training_data /queries/{query_id}
示例位于随查询返回的列表中。
在训练数据查询中添加示例 POST /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples POST /v2/projects/{project_id}/training_data /queries/{query_id}
在 v2 中使用 创建训练查询 方法,并在创建查询时传递所有示例。 否则,请使用更新 API。
删除训练数据查询示例 DELETE /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples/{example_id} POST /v2/projects/{project_id}/training_data/ queries/{query_id}
使用 v2 training_data 更新方法。
例如,更改标签或交叉引用 PUT /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples/{example_id} POST /v2/projects/{project_id}/training_data/ queries/{query_id}
使用 v2 training_data 更新方法。
获取训练数据示例的详细信息 GET /v1/environments/{environment_id}/collections/{collection_id}/training_data/{query_id}/examples/{example_id} 不可用。 使用“读取所有示例”调用来获取与查询关联的所有示例,并在返回的列表中查找所需的示例。

用户数据

用户数据 API 在 v2 和 v1中相同。

用户数据 API 支持详细信息
操作 v1 API v2 API
删除 DELETE /v1/user_data DELETE /v2/user_data
类似于 v1。 使用 customer_id 可删除与该客户标识关联的数据。

事件和反馈

v1 事件和反馈 API (/v1/events) 在 v2中不可用。

凭证

v1 凭证 API (/v1/environments/{environment_id}/credentials) 在 v2中不可用。 该功能可从 v2 产品用户界面获取。

状态码

对于几乎每个 API 方法,针对 v2 请求返回的状态码与针对 v1 请求返回的状态码不同。