词项向量
_termvectors
API 用于检索单个文档的词项向量信息。词项向量提供了文档中词项(单词)的详细信息,包括词频、位置、偏移量和负载。这对于相关性评分、高亮显示或相似度计算等应用非常有用。更多信息,请参阅词项向量参数。
端点
GET /{index}/_termvectors
POST /{index}/_termvectors
GET /{index}/_termvectors/{id}
POST /{index}/_termvectors/{id}
路径参数
下表列出了可用的路径参数。
参数 | 必需 | 数据类型 | 描述 |
---|---|---|---|
| 必需 | 字符串 | 包含文档的索引名称。 |
| 可选 | 字符串 | 文档的唯一标识符。 |
查询参数
下表列出了可用的查询参数。所有查询参数都是可选的。
参数 | 数据类型 | 描述 |
---|---|---|
| 布尔型 | 如果为 true ,则响应包括文档计数、文档频率总和以及词项总频率总和。(默认值:true ) |
| 列表或字符串 | 一个逗号分隔的列表或通配符表达式,用于指定要包含在统计信息中的字段。用作默认列表,除非在 completion_fields 或 fielddata_fields 参数中提供了特定的字段列表。 |
| 布尔型 | 如果为 true ,则响应包括词项偏移量。(默认值:true ) |
| 布尔型 | 如果为 true ,则响应包括词项负载。(默认值:true ) |
| 布尔型 | 如果为 true ,则响应包括词项位置。(默认值:true ) |
| 字符串 | 指定应执行操作的节点或分片。有关可用选项的列表,请参阅preference 查询参数。默认情况下,请求会随机路由到可用的分片副本(主副本或副本),不保证重复查询之间的一致性。 |
| 布尔型 | 如果为 true ,则请求是实时请求,而不是近实时请求。(默认值:true ) |
路由 | 列表或字符串 | 用于将操作路由到特定分片的自定义值。 |
| 布尔型 | 如果为 true ,则响应包括词频和文档频率。(默认值:false ) |
| 整数 | 如果为 true ,则将文档版本作为匹配项的一部分返回。 |
| 字符串 | 特定的版本类型。 有效值为 - external :版本号必须大于当前版本。- external_gte :版本号必须大于或等于当前版本。- force :版本号强制为给定值。- internal :版本号由 OpenSearch 内部管理。 |
请求正文字段
下表列出了可以在请求正文中指定的字段。
字段 | 数据类型 | 描述 |
| 对象 | 要分析的文档。如果提供,API 不会从索引中检索现有文档,而是使用提供的内容。 |
| 字符串数组 | 要返回词项向量的字段名称列表。 |
| 布尔型 | 如果为 true ,则响应包括每个词项的字符偏移量。(默认值:true ) |
| 布尔型 | 如果为 true ,则响应包括每个词项的负载。(默认值:true ) |
| 布尔型 | 如果为 true ,则响应包括 token 位置。(默认值:true ) |
| 布尔型 | 如果为 true ,则响应包括文档计数、文档频率总和以及词项总频率总和等统计信息。(默认值:true ) |
| 布尔型 | 如果为 true ,则响应包括词频和文档频率。(默认值:false ) |
路由 | 字符串 | 用于标识分片的自定义路由值。如果在索引期间使用了自定义路由,则为必填项。 |
| 整数 | 要检索的文档的特定版本。 |
| 字符串 | 要使用的版本控制类型。有效值:internal 、external 、external_gte 、force 。 |
| 对象 | 允许过滤响应中返回的 token(例如,按频率或位置)。有关可用选项,请参阅过滤词项。 |
| 对象 | 指定每个字段使用的自定义分析器。格式:{ "field_name": "analyzer_name" } 。 |
| 字符串 | 指定分片或节点路由偏好。请参阅preference 查询参数。 |
过滤词项
请求正文中的 filter
对象允许您过滤要包含在词项向量响应中的 token。filter
对象支持以下字段。
字段 | 数据类型 | 描述 |
| 整数 | 要返回的最大词项数。 |
| 整数 | 词项在文档中出现的最低频率,低于该频率的词项将不予包含。 |
| 整数 | 词项在文档中出现的最高频率,高于该频率的词项将不予包含。 |
| 整数 | 词项在索引中出现的最低文档频率,低于该频率的词项将不予包含。 |
| 整数 | 词项在索引中出现的最高文档频率,高于该频率的词项将不予包含。 |
| 整数 | 要包含的词项的最小长度。 |
| 整数 | 要包含的词项的最大长度。 |
示例
创建索引
PUT /my-index
{
"mappings": {
"properties": {
"text": {
"type": "text",
"term_vector": "with_positions_offsets_payloads"
}
}
}
}
索引文档
POST /my-index/_doc/1
{
"text": "OpenSearch is a search engine."
}
请求示例
检索词项向量
GET /my-index/_termvectors/1
{
"fields": ["text"],
"term_statistics": true
}
或者,您可以将 fields
和 term_statistics
作为查询参数提供
GET /my-index/_termvectors/1?fields=text&term_statistics=true
示例响应
响应显示词项向量信息
{
"_index": "my-index",
"_id": "1",
"_version": 1,
"found": true,
"took": 1,
"term_vectors": {
"text": {
"field_statistics": {
"sum_doc_freq": 5,
"doc_count": 1,
"sum_ttf": 5
},
"terms": {
"a": {
"doc_freq": 1,
"ttf": 1,
"term_freq": 1,
"tokens": [
{
"position": 2,
"start_offset": 14,
"end_offset": 15
}
]
},
"engine": {
"doc_freq": 1,
"ttf": 1,
"term_freq": 1,
"tokens": [
{
"position": 4,
"start_offset": 23,
"end_offset": 29
}
]
},
"is": {
"doc_freq": 1,
"ttf": 1,
"term_freq": 1,
"tokens": [
{
"position": 1,
"start_offset": 11,
"end_offset": 13
}
]
},
"opensearch": {
"doc_freq": 1,
"ttf": 1,
"term_freq": 1,
"tokens": [
{
"position": 0,
"start_offset": 0,
"end_offset": 10
}
]
},
"search": {
"doc_freq": 1,
"ttf": 1,
"term_freq": 1,
"tokens": [
{
"position": 3,
"start_offset": 16,
"end_offset": 22
}
]
}
}
}
}
}
响应正文字段
下表列出了所有响应正文字段。
字段 | 数据类型 | 描述 |
| 对象 | 包含每个指定字段的词项向量数据。 |
| 对象 | 包含 text 字段的词项向量详细信息。 |
| 对象 | 包含整个字段的统计信息。仅当 field_statistics 为 true 时才显示。 |
| 整数 | 在指定字段中包含至少一个词项的文档数量。 |
| 整数 | 字段中所有词项的文档频率总和。 |
| 整数 | 字段中所有词项的总词频(包括重复)总和。 |
| 对象 | 一个映射,其中每个键是一个词项,每个值包含该词项的详细信息。 |
| 整数 | 词项在文档中出现的次数。 |
| 整数 | 包含该词项的文档数量。仅当 term_statistics 为 true 时才显示。 |
| 整数 | 所有文档中的总词频。仅当 term_statistics 为 true 时才显示。 |
| 数组 | 一个 token 对象列表,提供有关单个词项实例的信息。 |
| 整数 | token 在文本中的位置。仅当 positions 为 true 时才显示。 |
| 整数 | token 的起始字符偏移量。仅当 offsets 为 true 时才显示。 |
| 整数 | token 的结束字符偏移量。仅当 offsets 为 true 时才显示。 |
| 字符串 (Base64) | 与 token 关联的可选负载数据。仅当 payloads 为 true 且可用时才显示。 |