API 版本比较
对于大多数 API 方法,请求参数和响应主体在 v1 和 v2之间有所不同。 了解可用于执行 v1 API 支持的操作的等效或备用 v2 方法。
比较信息假定您正在使用最新版本的 v1 API (版本 2019-04-30
),并将其与最新版本的 v2 API (版本 2020-08-30
) 进行比较。
环境
v2中没有 环境 的概念。 部署详细信息 (例如,大小和索引容量) 根据服务计划类型进行管理。 在 v2中,集合组织在项目中。 您可以创建不同类型的项目,以将缺省配置设置应用于添加到项目的集合。
v2 中没有对应于 v1 环境方法的等效方法。 但是,下表显示了提供与相应 v1 方法类似的功能的 v2 方法。 针对每种方法返回的受支持参数和响应主体也不同。
操作 | 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_id ,id 和 total_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": { ... } |
不可用。 通过用户界面配置与外部数据源的连接。 有关更多信息,请参阅 创建集合。 |
集合
操作 | 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 之间的重要差异。
方法 | 注释 |
---|---|
创建集合 | v2 响应不包含 status 和 configuration_id 字段。 您可以使用 获取文档详细信息 方法来获取特定文档的状态信息。对象 disk_usage ,training_status 和 crawl_status 在 v2中的响应主体中不存在。 响应主体中当前不存在 v2 中的 document_counts 对象。 在 Get project 方法响应中返回训练状态。 其他信息在 v2中不可用。 在 v2中,可以通过指定可选 enrichments 对象来定义要应用于集合中文档的扩充项。 |
获取集合详细信息 | v2 响应不包含 status 和 configuration_id 字段。 您可以使用 获取文档详细信息 方法来获取特定文档的状态信息。对象 document_counts ,disk_usage ,training_status 和 crawl_status 在 v2中的响应主体中不存在。 在 Get project 方法响应中返回训练状态。 其他信息在 v2中不可用。 例如,您无法获取集合的文档计数,也无法获取连接到 v2中的外部数据源的集合的搜寻状态。 在 v2中,可以获取有关应用于集合的扩充项的信息。 |
更新集合 | v2 使用 POST 而不是 PUT 。 在 v2中,可以通过指定可选 enrichments 对象来更新应用于集合中文档的扩充项。v2 响应不包含 status 和 configuration_id 字段。 |
查询修改
v1 中提供的用于以编程方式配置标记化的方法在 v2 API 中不受支持。
v1 API | v2 API |
---|---|
令牌化字典 API | 不可用。 |
扩展 v1 API | 扩展 v2 API |
停用词 v1 API | 停用词 v2 API |
文档
v2 引入了名为 X-Watson-Discovery-Force
且在 v1中不可用的定制头。 对多个集合中共享的数据执行操作时,必须包含头,以指示要在每个集合中执行该操作。 如果不包含头,那么将返回 403
错误。
在 v1 和 v2之间的采集期间,将以不同方式转换添加到集合的 JSON 文件中的字段。 有关如何在 v2 索引中存储 JSON 文件的更多信息,请参阅 JSON 文件。
查询数
操作 | 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
。 除了count
,characters
和fields
选项外,您还可以指定per_document
(按文档质量对文档进行排序),然后返回每个文档排名最高的段落。 您还可以指定find_answers
以返回每个段落的答案对象,其中包含查询的简明答案。汇总 汇总 相同的表达式语言。 计数 计数 无注释。 offset offset 无注释。 return return 无注释。 排序 排序 无注释。 突出显示 突出显示 如果 passages.enabled
和passages.per_document
为true
,那么将针对每个文档返回段落而不是突出显示。spelling_建议 spelling_建议 无注释。 删除重复数据 不适用 v2 中不支持。 similar similar 在 v2中更改了格式。 similar:true
参数已更改为similar.enable:true
。document_ids
和fields
参数已从字符串更改为字符串数组。 如果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 在 v2 和 v1中相同。
操作 | 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 请求返回的状态码不同。