赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 开发参考
  5. 日志服务SDK
  6. Python SDK
  7. 查询日志
  8. 管理索引
  9. 创建索引

创建索引

  • 管理索引
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

调用CreateIndex为指定Logstore创建索引。

前提条件

您已完成以下操作:

  • 开通日志服务。

  • 初始化日志服务Python SDK。

参数说明

def create_index(self, project_name, logstore_name, index_detail):

请求参数

名称

类型

是否必填

说明

project_name

String

是

Project名称:项目(Project)是日志服务的资源管理单元,是进行多用户隔离与访问控制的主要边界。更多信息,请参见管理Project。

logstore_name

String

是

Logstore名称:Logstore是日志服务中日志数据的采集、存储和查询单元。更多信息,请参见管理Logstore。

index_detail

IndexConfig

是

索引配置信息。

IndexConfig参数说明:

名称

类型

是否必填

说明

line_config

IndexLineConfig

是

IndexLineConfig类,用于配置全文索引。

key_config_list

Dict[str, IndexLineConfig]

是

IndexKeyConfig类,用于配置字段索引,类型是一个字典。字典的键为字段名称,类型为字符串。值为该字段的索引配置,类型为IndexLineConfig。

log_reduce

bool

否

是否开启日志聚类。开启后白名单与黑名单只生效其中一个。

  • True:开启日志聚类。

  • False(默认值):不开启日志聚类。

IndexLineConfig参数说明:

名称

类型

是否必填

说明

token_list

List

是

分词符列表。按照给出的分词符列表进行词语的划分。例如指定分词符列表包含, 与 : 时,日志内容hello:aliyun,sls将被拆分成三个词语hello、aliyun、sls,查询时可搜索词关键词。

case_sensitive

bool

否

是否大小写敏感。

  • True:大小写敏感。

  • False(默认值):大小写不敏感。

chinese

bool

否

是否启用中文分词功能。开启中文分词后,shard的读写能力会有一定下降。

  • True:启用

  • False(默认值):不启用

IndexKeyConfig参数说明:

名称

类型

是否必填

说明

index_type

String

否

索引类型。默认为text。可选text、long、double和json。

  • text:文本字段。可配置 token_list 、case_sensitive、chinese 、doc_value、alias参数。

  • long:整型字段。可配置doc_value、alias参数。

  • double:浮点数字段。可配置doc_value、alias参数。

  • json:JSON文本字段。仅可配置json_key_config参数。

token_list

List

是

分词符列表。按照给出的分词符列表进行词语的划分。例如指定分词符列表包含, 与 : 时,日志内容hello:aliyun,sls将被拆分成三个词语hello、aliyun、sls,查询时可搜索词关键词。

case_sensitive

bool

否

是否大小写敏感。

  • True:大小写敏感。

  • False(默认值):大小写不敏感。

doc_value

bool

否

是否开启统计分析功能,开启后该字段可用于分析语句。

alias

String

否

索引键的别名。

json_key_config

IndexJsonKeyConfig

否

IndexJsonKeyConfig类,当index_type为json时,需要配置此项。

chinese

bool

否

是否启用中文分词功能。开启中文分词后,shard的读写能力会有一定下降。

  • True:启用

  • False(默认值):不启用

IndexJsonKeyConfig参数说明:

名称

类型

是否必填

说明

index_all

bool

否

如果JSON键中的所有字符串值都应该被索引,则设置为True。

max_depth

int

否

index_all为True时,只有当JSON值的depth <= max_depth才会被索引。默认值为 -1,-1表示无深度限制。

alias

String

否

索引键的别名。

json_keys

Dict[str, JsonKeyConfigValue]

否

JSON字段内嵌套的子字段索引配置。可通过调用IndexJsonKeyConfig实例的add_key方法添加子字段。例如日志字段为:

jsonKey:{
    "level_1_key_1": 123,
    "level_1_key_2": {
        "level_2_key_1": "hello"
    }
}

可以配置字段jsonKey的index_type为json,json_key_config参数上调用add_key("level_1_key_1", "long"),add_key("level_1_key_2.level_2_key_1", "text")来为嵌套子字段添加字段索引。

返回参数

返回参数请参见:CreateIndex - 创建索引。

示例代码

from aliyun.log import LogClient, IndexConfig, IndexKeyConfig, IndexLineConfig, IndexJsonKeyConfig
import os

# 本示例从环境变量中获取AccessKey ID和AccessKey Secret
access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
access_key_secret = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# 日志服务的服务接入点
endpoint = "cn-hangzhou.log.aliyuncs.com"

# 实例化LogClient类
client = LogClient(endpoint, access_key_id, access_key_secret)

project_name = "project-1"
logstore_name = "logstore-1"


def main():
    ttl = 1
    token_list = [",", "\t", "\n", ";"]

    # 全文索引配置
    line_config = IndexLineConfig(token_list, case_sensitive=False, include_keys=None, exclude_keys=None, chinese=None)
    # 字段索引配置
    index_config = IndexKeyConfig(token_list, case_sensitive=False, index_type='text', doc_value=False, alias=None,
                                  json_key_config=None, chinese=None)
    # 构造index_detail配置信息
    key_config_list = {"key_1": index_config, "key_2": index_config}
    index_detail = IndexConfig(ttl, line_config, key_config_list, all_keys_config=None, log_reduce=None)

    # 为指定Logstore创建索引
    res = client.create_index(project_name, logstore_name, index_detail)
    res.log_print()


if __name__ == '__main__':
    main()

示例返回结果

CreateIndexResponse:
headers: {'Server': 'AliyunSLS', 'Content-Length': '0', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Date': 'Sat, 12 Oct 2024 06:27:20 GMT', 'x-log-time': '1728714440', 'x-log-requestid': '670A16C88F14B9A316BC3ADE'}

Process finished with exit code 0

相关文档

  • 管理Index的API请参见:

    • CreateIndex - 创建索引

    • GetIndex - 获取索引

    • UpdateIndex - 更新索引

    • DeleteIndex - 删除索引

  • 更多示例代码,请参见Aliyun Log Python SDK on GitHub。

相关文章

创建索引 2025-04-22 10:34

调用CreateIndex为指定Logstore创建索引。 前提条件 您已完成以下操作:

查询索引 2025-04-22 10:34

调用GetIndex接口查询指定Logstore的索引配置信息。 前提条件 您已完成以下操作:

更新索引 2025-04-22 10:34

调用UpdateIndex接口更新Logstore的索引信息。 前提条件 您已完成以下操作: <

删除索引 2025-04-22 10:34

调用DeleteIndex接口删除指定Logstore的索引配置信息。 前提条件 您已完成以下操作:

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号