IBM Cloud Docs
查询概述

查询概述

IBM Watson® Discovery 通过搜索查询提供强大的内容搜索功能。

要在数据采集,建立索引和扩充后从 Discovery 检索数据,请提交查询。

将数据添加到 Discovery时,每个文件的表示将作为 JSON 格式的文档存储在索引中。 应用于集合的扩充项将识别数据中有意义的信息,并将其存储在这些文档中的新字段中。 要搜索数据,请提交查询以返回最相关的文档并抽取您要查找的信息。

查询类型

Discovery 接受下列其中一种受支持的查询类型:

查询

在文档中的特定字段中查找具有相关值的文档。 此类型的查询使用 Discovery Query Language 语法来定义搜索条件。

Parameter name: query

自然语言查询 (NLQ)

查找以自然语言编写的查询的答案。 NLQ 请求接受文本字符串值。

Parameter name: natural_language_query

除了使用其中一种受支持的查询类型指定的查询外,还可以包含以下一个或两个参数。 还可使用 Discovery 查询语言 (DQL) 语法来指定这些参数的值:

  • filter
  • aggregation

有关 Discovery 查询语言的更多信息,请参阅 DQL 概述

从产品用户界面提交的查询是自然语言查询。 根据正在使用的项目类型,指定了几个其他受支持的参数并给出了缺省值。 有关更多信息,请参阅 缺省查询设置

Discovery 不记录查询请求数据。 您无法选择性加入请求日志记录。

选择正确的查询类型

下表汇总了每种查询类型支持的功能。 使用它可帮助您确定要提交的查询类型。

查询类型比较
此表具有行和列标题。 行标题标识查询类型。 列标题标识您在提交查询时可能具有的不同目标。 要了解要用于支持目标的查询,请转至描述目标的行,并查找用于标识支持目标的查询类型的列。
目标 自然语言查询 (NLQ) Discovery 查询语言 (DQL)
从文档返回段落 “勾选标记”图标 “勾选标记”图标
突出显示响应中的术语 (除非启用每个文档的段落) “勾选标记”图标 “勾选标记”图标
定义定制停用词或查询扩展 “勾选标记”图标 “勾选标记”图标
搜索特定文档字段或扩充项 “勾选标记”图标
使用运算符,例如搜索中的布尔子句 “勾选标记”图标
启用拼写更正 “勾选标记”图标
添加整理以返回对某些问题的硬编码答案 “勾选标记”图标
使用相关性训练 “勾选标记”图标
启用答案查找以从段落返回简明答案 “勾选标记”图标
使用表检索 “勾选标记”图标

查询分析

提交查询时,将分析查询文本字符串。 在查询分析期间,将标识查询中每个关键术语的根 (或引理)。 将除去原始查询字符串中出现的任何停用词,并添加为原始查询字符串中出现的任何词汇定义的同义词扩展。 此增强版本的查询是提交到 Discovery的内容。

将对所有查询执行相同的分析,无论这些查询是作为自然语言查询提交还是使用发现查询语言语法。

查询流

下图显示了 Discovery如何处理搜索请求的概念性说明。

显示查询和自然语言查询请求的不同处理方式Discovery
显示了自然语言查询与发现查询语言查询的流程

流程图中显示了以下流程:

BM25
使用最佳匹配 25 (概率信息检索算法) 来计算搜索返回的每个文档的相关性分数。 该图显示 BM25 适用于来自查询请求的文档结果,但不限于查询请求。 它还与其他方法一起用作应用于自然语言查询结果的相关性训练排名器过程的一部分。
整理
如果自然语言查询与预定义的 curation 查询匹配,那么将返回某些文档和可能的硬编码片段。 没有用于启用 curation 的查询参数。 要使用 curations,必须以编程方式定义这些 curations (创建 curation 方法)。 任何组织的输出都将与相关性训练排名器或 QPP 结果的输出合并。
相关性训练
可以选择定义并应用于项目以对文档进行相关评分的模型。 没有用于启用相关性训练的查询参数。 要使用相关性训练,必须以编程方式 (创建训练查询方法) 或使用产品用户界面成功训练项目。
QPP
一种查询性能预测算法,在给定查询和排名靠前的结果列表的情况下,生成用于确定文档相关性的分数。 仅当没有相关性训练排名器可用时才使用。
过滤器
可以将 filter 参数与 querynatural_language_query 请求一起传递,以从结果集中除去不满足特定条件的文档。 过滤器显示为文档检索阶段中的最后一个步骤。 但是,它在流中的不同时间使用。 选择其在图中的位置是为了强调任何与过滤器定义不匹配的文档都将从结果集中排除。 排除甚至适用于可能在管理中指定的文档。
段落检索
passages.enabled=true 参数包含在自然语言查询请求中时,返回文档中的段落。
答案结果
passages.find_answers=true 参数包含在自然语言查询请求中时,将返回段落中的简明答案以及从文档中抽取的段落。 如果启用了答案结果,那么每个搜索结果的最终置信度分数都是来自答案结果,段落检索以及 QPP 或重新排名搜索的置信度分数的组合 (以使用的方法为准)。
表检索
table_results.enabled=true 参数包含在自然语言查询请求中时,返回文档中的表中的信息。

查询限制

查询是向 API 的 /query 端点提交 POST 请求的任何操作。 此类操作包括使用 API 提交的查询。 它不包含从产品用户界面的 改进和定制 页面上的搜索栏提交的查询。

仅当请求成功时,才会对查询进行计数,这意味着它将返回响应 (消息代码为 200)。

每个服务实例每月可提交的搜索查询数取决于 Discovery 套餐类型。

每月查询数
计划 每个服务实例每月的查询数
Cloud Pak for Data 无限制
Premium 无限制
企业 无限制
加号 (包括试用) 500,000 起

仅对于企业套餐,您的帐单标签会将从查询生成的请求作为“查询”进行搜索并分析 API 调用。 有关 Analyze API 调用的更多信息,请参阅 Analyze API 限制

每个服务实例每秒可处理的查询数取决于 Discovery 套餐类型。

并发查询数
计划 每个服务实例的并发查询数
Cloud Pak for Data 无限制
Premium 50
企业 5
加号 (包括试用) 5

有关定价的信息,请参阅 Discovery 定价套餐

估算查询使用情况

如何估算应用程序每月将使用的查询数取决于您的用例。

  • 对于更注重数据扩充和分析的用例,或者未大量搜索文档处理的输出的用例,您可以根据文档总数来估算查询号。
  • 对于许多用户与使用 Discovery的应用程序进行交互的用例,您可以通过计算每个用户的搜索次数乘以期望的用户数来估算。 例如,用户向虚拟助手提交的问题中有 50% 可能由 Discovery回答。 每月有 100,000 个用户,每个用户平均有 3 个问题,您可以期望每月有 15,000 个查询。(10,000 个用户/月 * 3 个查询/用户 * 50% 到 Discovery = 15,000)

在启用文档级安全性的情况下进行查询

IBM Cloud Pak for Data IBM Software Hub

此信息仅适用于已安装的部署。

如果对集合启用文档级别安全性,那么只有当前用户有权访问的文档才会在搜索结果中返回。 有关更多信息,请参阅 配置文档级安全性

要返回符合安全限制的搜索结果,当前用户必须满足以下要求:

  • 有权访问 Discovery 实例。
  • 有权访问数据源。

如果当前用户不满足这些需求,那么不会返回任何搜索结果。

与您的 Discovery 实例关联的用户名用于生成授权令牌。 该令牌用于认证 Discovery 查询。

要生成每个访问令牌,请运行以下命令:

curl -u "{username}:{password}" \
"https://{hostname}:{port}/v1/preauth/validateAuth"

{username}{password} 替换为用户的 Discovery 凭证。

运行查询时,请使用与用户关联的不记名令牌。

curl -H "Authorization: Bearer {token}" \
'https://{hostname}/{instance_name}/v2/projects/{project_id}/collections/{Collection_ID}/query\?version\=2019-11-29'