Link Search Menu Expand Document Documentation Menu

词项向量

_termvectors API 用于检索单个文档的词项向量信息。词项向量提供了文档中词项(单词)的详细信息,包括词频、位置、偏移量和负载。这对于相关性评分、高亮显示或相似度计算等应用非常有用。更多信息,请参阅词项向量参数

端点

GET  /{index}/_termvectors
POST /{index}/_termvectors
GET  /{index}/_termvectors/{id}
POST /{index}/_termvectors/{id}

路径参数

下表列出了可用的路径参数。

参数 必需 数据类型 描述
index 必需 字符串 包含文档的索引名称。
id 可选 字符串 文档的唯一标识符。

查询参数

下表列出了可用的查询参数。所有查询参数都是可选的。

参数 数据类型 描述
field_statistics 布尔型 如果为 true,则响应包括文档计数、文档频率总和以及词项总频率总和。(默认值:true
fields 列表或字符串 一个逗号分隔的列表或通配符表达式,用于指定要包含在统计信息中的字段。用作默认列表,除非在 completion_fieldsfielddata_fields 参数中提供了特定的字段列表。
offsets 布尔型 如果为 true,则响应包括词项偏移量。(默认值:true
payloads 布尔型 如果为 true,则响应包括词项负载。(默认值:true
positions 布尔型 如果为 true,则响应包括词项位置。(默认值:true
preference 字符串 指定应执行操作的节点或分片。有关可用选项的列表,请参阅preference 查询参数。默认情况下,请求会随机路由到可用的分片副本(主副本或副本),不保证重复查询之间的一致性。
realtime 布尔型 如果为 true,则请求是实时请求,而不是近实时请求。(默认值:true
路由 列表或字符串 用于将操作路由到特定分片的自定义值。
term_statistics 布尔型 如果为 true,则响应包括词频和文档频率。(默认值:false
version 整数 如果为 true,则将文档版本作为匹配项的一部分返回。
version_type 字符串 特定的版本类型。
有效值为
- external:版本号必须大于当前版本。
- external_gte:版本号必须大于或等于当前版本。
- force:版本号强制为给定值。
- internal:版本号由 OpenSearch 内部管理。

请求正文字段

下表列出了可以在请求正文中指定的字段。

字段 数据类型 描述
doc 对象 要分析的文档。如果提供,API 不会从索引中检索现有文档,而是使用提供的内容。
fields 字符串数组 要返回词项向量的字段名称列表。
offsets 布尔型 如果为 true,则响应包括每个词项的字符偏移量。(默认值:true
payloads 布尔型 如果为 true,则响应包括每个词项的负载。(默认值:true
positions 布尔型 如果为 true,则响应包括 token 位置。(默认值:true
field_statistics 布尔型 如果为 true,则响应包括文档计数、文档频率总和以及词项总频率总和等统计信息。(默认值:true
term_statistics 布尔型 如果为 true,则响应包括词频和文档频率。(默认值:false
路由 字符串 用于标识分片的自定义路由值。如果在索引期间使用了自定义路由,则为必填项。
version 整数 要检索的文档的特定版本。
version_type 字符串 要使用的版本控制类型。有效值:internalexternalexternal_gteforce
filter 对象 允许过滤响应中返回的 token(例如,按频率或位置)。有关可用选项,请参阅过滤词项
per_field_analyzer 对象 指定每个字段使用的自定义分析器。格式:{ "field_name": "analyzer_name" }
preference 字符串 指定分片或节点路由偏好。请参阅preference 查询参数

过滤词项

请求正文中的 filter 对象允许您过滤要包含在词项向量响应中的 token。filter 对象支持以下字段。

字段 数据类型 描述
max_num_terms 整数 要返回的最大词项数。
min_term_freq 整数 词项在文档中出现的最低频率,低于该频率的词项将不予包含。
max_term_freq 整数 词项在文档中出现的最高频率,高于该频率的词项将不予包含。
min_doc_freq 整数 词项在索引中出现的最低文档频率,低于该频率的词项将不予包含。
max_doc_freq 整数 词项在索引中出现的最高文档频率,高于该频率的词项将不予包含。
min_word_length 整数 要包含的词项的最小长度。
max_word_length 整数 要包含的词项的最大长度。

示例

创建索引

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
}

或者,您可以将 fieldsterm_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
            }
          ]
        }
      }
    }
  }
}

响应正文字段

下表列出了所有响应正文字段。

字段 数据类型 描述
term_vectors 对象 包含每个指定字段的词项向量数据。
term_vectors.text 对象 包含 text 字段的词项向量详细信息。
term_vectors.text.field_statistics 对象 包含整个字段的统计信息。仅当 field_statisticstrue 时才显示。
term_vectors.text.field_statistics.doc_count 整数 在指定字段中包含至少一个词项的文档数量。
term_vectors.text.field_statistics.sum_doc_freq 整数 字段中所有词项的文档频率总和。
term_vectors.text.field_statistics.sum_ttf 整数 字段中所有词项的总词频(包括重复)总和。
term_vectors.text.terms 对象 一个映射,其中每个键是一个词项,每个值包含该词项的详细信息。
term_vectors.text.terms.<term>.term_freq 整数 词项在文档中出现的次数。
term_vectors.text.terms.<term>.doc_freq 整数 包含该词项的文档数量。仅当 term_statisticstrue 时才显示。
term_vectors.text.terms.<term>.ttf 整数 所有文档中的总词频。仅当 term_statisticstrue 时才显示。
term_vectors.text.terms.<term>.tokens 数组 一个 token 对象列表,提供有关单个词项实例的信息。
term_vectors.text.terms.<term>.tokens[].position 整数 token 在文本中的位置。仅当 positionstrue 时才显示。
term_vectors.text.terms.<term>.tokens[].start_offset 整数 token 的起始字符偏移量。仅当 offsetstrue 时才显示。
term_vectors.text.terms.<term>.tokens[].end_offset 整数 token 的结束字符偏移量。仅当 offsetstrue 时才显示。
term_vectors.text.terms.<term>.tokens[].payload 字符串 (Base64) 与 token 关联的可选负载数据。仅当 payloadstrue 且可用时才显示。
剩余 350 字符

有问题?

想贡献力量?