调用CreateIndex为指定Logstore创建索引。
前提条件
您已完成以下操作:
参数说明
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 | 否 | 是否开启日志聚类。开启后白名单与黑名单只生效其中一个。
|
IndexLineConfig参数说明:
名称 | 类型 | 是否必填 | 说明 |
token_list | List | 是 | 分词符列表。按照给出的分词符列表进行词语的划分。例如指定分词符列表包含 |
case_sensitive | bool | 否 | 是否大小写敏感。
|
chinese | bool | 否 | 是否启用中文分词功能。开启中文分词后,shard的读写能力会有一定下降。
|
IndexKeyConfig参数说明:
名称 | 类型 | 是否必填 | 说明 |
index_type | String | 否 | 索引类型。默认为
|
token_list | List | 是 | 分词符列表。按照给出的分词符列表进行词语的划分。例如指定分词符列表包含 |
case_sensitive | bool | 否 | 是否大小写敏感。
|
doc_value | bool | 否 | 是否开启统计分析功能,开启后该字段可用于分析语句。 |
alias | String | 否 | 索引键的别名。 |
json_key_config | IndexJsonKeyConfig | 否 | IndexJsonKeyConfig类,当index_type为 |
chinese | bool | 否 | 是否启用中文分词功能。开启中文分词后,shard的读写能力会有一定下降。
|
IndexJsonKeyConfig参数说明:
名称 | 类型 | 是否必填 | 说明 |
index_all | bool | 否 | 如果JSON键中的所有字符串值都应该被索引,则设置为True。 |
max_depth | int | 否 | index_all为True时,只有当JSON值的 |
alias | String | 否 | 索引键的别名。 |
json_keys | Dict[str, JsonKeyConfigValue] | 否 | JSON字段内嵌套的子字段索引配置。可通过调用IndexJsonKeyConfig实例的add_key方法添加子字段。例如日志字段为:
可以配置字段 |
返回参数
返回参数请参见: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请参见:
更多示例代码,请参见Aliyun Log Python SDK on GitHub。
- 本页导读 (1)
- 前提条件
- 参数说明
- 请求参数
- 返回参数
- 示例代码
- 示例返回结果
- 相关文档