字段使用统计信息 API编辑

此功能处于技术预览阶段,在未来版本中可能会更改或删除。Elastic 将致力于修复任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。

返回索引的每个分片和字段的字段使用信息。当查询在集群上运行时,会自动捕获字段使用统计信息。分片级搜索请求访问给定字段(即使在该请求期间多次访问),也会被计为单次使用。

response = client.indices.field_usage_stats(
  index: 'my-index-000001'
)
puts response
GET /my-index-000001/_field_usage_stats

请求编辑

GET /<index>/_field_usage_stats

先决条件编辑

  • 如果启用了 Elasticsearch 安全功能,则必须对目标索引或索引别名拥有 manage 索引权限

路径参数编辑

<index>
(可选,字符串)用于限制请求的索引名称的逗号分隔列表或通配符表达式。

查询参数编辑

allow_no_indices
(可选,布尔值)如果为 false,则当任何通配符表达式、索引别名_all 值仅针对丢失或关闭的索引时,请求将返回错误。即使请求针对其他打开的索引,此行为也适用。例如,如果请求针对 foo*,bar*,则当某个索引以 foo 开头,但没有索引以 bar 开头时,将返回错误。
expand_wildcards

(可选,字符串)通配符模式可以匹配的索引类型。如果请求可以针对数据流,则此参数决定通配符表达式是否匹配隐藏的数据流。支持逗号分隔的值,例如 open,hidden。有效值为

all
匹配任何数据流或索引,包括隐藏的数据流或索引。
open
匹配打开的、非隐藏索引。还匹配任何非隐藏数据流。
closed
匹配关闭的、非隐藏索引。还匹配任何非隐藏数据流。数据流无法关闭。
hidden
匹配隐藏的数据流和隐藏的索引。必须与 openclosed 或两者结合使用。
none
不接受通配符模式。
ignore_unavailable
(可选,布尔值)如果为 false,则当请求针对丢失或关闭的索引时,请求将返回错误。默认为 false
wait_for_active_shards

(可选,字符串)在继续操作之前必须处于活动状态的分片副本数。设置为 all 或索引中分片的任何正整数(number_of_replicas+1)。默认值:1,主分片。

参见 活动分片

master_timeout
(可选,时间单位)等待主节点的时间段。如果主节点在超时之前不可用,请求失败并返回错误。默认为 30s。还可以设置为 -1 以指示请求永远不会超时。
timeout
(可选,时间单位)等待响应的时间段。如果在超时之前未收到响应,请求失败并返回错误。默认为 30s
fields

(可选,字符串)要包含在统计数据中的字段的逗号分隔列表或通配符表达式。

响应正文编辑

响应正文报告支持索引中字段的数据结构的每个分片使用计数。给定请求将使每个计数最多增加 1,即使请求多次访问同一字段也是如此。

any
(整数)表示对字段的任何类型的使用(例如,通过倒排索引存储的字段文档值等),以便对给定的搜索请求进行一次计数。
inverted_index

(对象)倒排索引index 映射参数启用,并通过设置字段的 index_options 进行配置。

inverted_index 的属性
terms
(整数)表示倒排索引词项的使用情况,回答“是否使用了此字段的倒排索引?”的问题。
postings
(整数)表示包含给定词项的文档 ID 的发布列表的使用情况。
proximity
(整数)表示在倒排索引中对位置偏移量有效负载的任何类型的使用,以便对给定的搜索请求进行一次计数。
positions
(整数)表示倒排索引位置数据(词项的顺序)的使用情况。
term_frequencies
(整数)表示倒排索引词项频率的使用情况,用于计算得分。
offsets
(整数)表示倒排索引偏移量的使用情况,用于存储词项的起始和结束字符偏移量。
payloads
(整数)表示倒排索引有效负载的使用情况,例如通过 分隔有效负载标记过滤器 或用户定义的分析组件和插件。
stored_fields
(整数)表示存储的字段的使用情况。这些字段通过 store 映射选项启用,并通过指定 stored_fields 查询选项进行访问。请注意,_source_id 字段默认存储,并且在此处计算其使用情况。
doc_values
(整数)表示文档值的使用,主要用于排序和聚合。这些值通过doc_values映射参数启用。
points
(整数)表示使用 Lucene PointValues,它是大多数数字字段数据类型的基础,包括空间数据类型数字日期等。查询/聚合使用这些值进行范围、计数、分区、最小值/最大值、直方图、空间等。
norms
(整数)表示规范的使用,其中包含用于评分的索引时间提升值。
term_vectors
(整数)表示词向量的使用,允许在搜索时检索文档的词语。用法包括高亮显示类似查询
knn_vectors
(整数)表示knn_vectors字段类型的使用,主要用于k 近邻 (kNN) 搜索

示例编辑

以下请求检索索引 my-index-000001 在当前可用分片上的字段使用信息。

response = client.indices.field_usage_stats(
  index: 'my-index-000001'
)
puts response
GET /my-index-000001/_field_usage_stats

API 返回以下响应

{
    "_shards": {
        "total": 1,
        "successful": 1,
        "failed": 0
    },
    "my-index-000001": {
        "shards": [
            {
                "tracking_id": "MpOl0QlTQ4SYYhEe6KgJoQ",
                "tracking_started_at_millis": 1625558985010,
                "routing": {
                    "state": "STARTED",
                    "primary": true,
                    "node": "gA6KeeVzQkGURFCUyV-e8Q",
                    "relocating_node": null
                },
                "stats" : {
                    "all_fields": { 
                        "any": "6",
                        "inverted_index": {
                            "terms" : 1,
                            "postings" : 1,
                            "proximity" : 1,
                            "positions" : 0,
                            "term_frequencies" : 1,
                            "offsets" : 0,
                            "payloads" : 0
                        },
                        "stored_fields" : 2,
                        "doc_values" : 1,
                        "points" : 0,
                        "norms" : 1,
                        "term_vectors" : 0,
                        "knn_vectors" : 0
                    },
                    "fields": {
                        "_id": { 
                            "any" : 1,
                            "inverted_index": {
                                "terms" : 1,
                                "postings" : 1,
                                "proximity" : 1,
                                "positions" : 0,
                                "term_frequencies" : 1,
                                "offsets" : 0,
                                "payloads" : 0
                            },
                            "stored_fields" : 1,
                            "doc_values" : 0,
                            "points" : 0,
                            "norms" : 0,
                            "term_vectors" : 0,
                            "knn_vectors" : 0
                        },
                        "_source": {...},
                        "context": {...},
                        "message.keyword": {...}
                    }
                }
            }
        ]
    }
}

报告索引中所有字段的使用计数之和(在列出的分片上)。

报告以下使用计数的字段名称(在列出的分片上)。