在时序日志场景的ES Serverless应用中,您可以使用索引管理功能管理您的索引,例如创建、修改、删除索引等。
前提条件
已创建时序日志场景的应用。具体操作,请参见创建应用。
时序日志场景下的索引特点
索引中的字段均会采用时序日志场景的最佳实践:
索引只支持检索,不支持算分(对文档的相关性进行评估)。
检索时会忽略索引字段中的大小写。
text类型的字段,不支持通配符查询。
默认分词下,单个词长度不超过255个字符。
索引不支持按id进行读写,返回的id也没有实际意义。
各个字段及数组内字段的顺序会变化,对字段顺序有依赖的请谨慎使用。
部分类型的字段格式会发生改变,例如时间字段、带引号的数字等。解决格式变化的方法如下:
时间字段:指定时间字段的format。
带引号的数字:写入时不带引号。
使用科学计数法存储数值型的double、long类型字段:对double、long 类型不进行科学计数法格式数据存储。
创建索引
- 登录阿里云Elasticsearch控制台。
在左侧导航栏,单击Elasticsearch Serverless版本。
说明如果您所在的地域没有Elasticsearch Serverless服务,请在顶部菜单栏切换地域。
在Elasticsearch Serverless服务控制台的左侧导航栏,单击应用管理。
在应用管理页面,单击目标应用名称。
在左侧导航栏,选择
。单击创建索引。
在创建索引面板,填写索引配置信息。
项目
描述
索引名称
自定义的索引名称需满足以下条件:
长度为1~128个字节。
不支持中文。
不能以
- _ + .
开头。不能包含大写字母和
whitespace\/ * ? " < > | # : ,
等特殊符号。
动态字段识别
开启动态字段识别开关后,当索引接收到包含新字段的文档时,会根据新字段的数据类型,自动更新索引的映射。
开启动态字段识别开关,即将索引的dynamic字段值设置为true。
关闭动态字段识别开关,即将索引的dynamic字段值设置为false。
说明新字段为text类型时,默认采用lineAnalyzer。
对默认text类型字段进行match_phrase查询时会有查询截断行为,可能导致查询结果不准确。
字段映射
手动设置索引的字段映射。
字段名称:用户可自定义索引数据的字段名称。
字段类型:六种字段的数据类型可供选择:boolean、keyword、long、double、date、text。如果您需要设置更多的字段类型,可以切换至JSON编辑模式中编辑。支持的字段类型,请参见 Field data types。
开启索引:默认开启。启用后会对该字段构建索引,字段可用于检索。
开启统计:默认开启,且暂不支持关闭。启用后支持对字段值做统计分析,但会增加索引存储空间。
说明text字段类型不支持开启统计。
分词符:text字段类型支持编辑分词符,分词符的作用是将字段内容拆分成多个词。默认的分词符为
whitespace'";=()[]{}?@&<>/:\n\t\r#\|,
。
通过输入样例自动配置生成索引的字段映射。
单击输入样例自动配置,在输入框内输入JSON格式的数据,单击确定,平台校验无误后,自动将字段映射到字段映射表中。
JSON格式的数据样例:
{ "bool_field": true, "date_field": "20220126", "keyword_field": "这是一行不需要分词的文本", "text_field": "这是一行需要分词的文本,文本长度超过36个字符的会被推断为需要分词,定义为text类型" }
在JSON模式下设置字段映射。
在字段映射区域的右上角,单击切换至JSON 编辑模式,在JSON模式下编辑字段映射。
说明切换模式时,配置信息将自动在两种模式间进行同步。
JSON示例:
{ "settings": { "index": { "sort": { "field": [ "date_field" ], "order": [ "desc" ] } } }, "mappings": { "dynamic": true, "properties": { "bool_field": { "type": "boolean", "doc_values": true, "index": true }, "date_field": { "format": "basic_date", "type": "date", "doc_values": true, "index": true }, "keyword_field": { "type": "keyword", "doc_values": true, "index": true }, "text_field": { "type": "text", "analyzer": "lineAnalyzer", "doc_values": false, "index": true, "term_hash_enable": true } } } }
时间字段
选择用于记录数据时间的字段,字段类型需为date类型。
说明索引创建完成后,不支持修改和删除时间字段。
时间格式
时间字段支持ES的默认格式,请参见Date field type。
数据保存时间
限时保存:保存索引数据的时间,可选范围为1~365天。
永久保存:永久保存索引数据。
单击确认。
索引数据写入和查询
登录Serverless应用的Kibana控制台。具体操作,请参见通过Kibana使用Serverless应用。
在页面左上角单击图标,选择
。您可以执行以下代码对索引进行操作。
查看索引映射详情:
GET test/_mapping
返回结果:
{ "test": { "mappings": { "dynamic": true, "dynamic_templates": [ { "match_tag": { "mapping": { "analyzer": "lineAnalyzer", "type": "match_only_text", "term_hash_enable": true }, "match_mapping_type": "string", "match": "*" } } ], "properties": { "bool_field": { "index": true, "type": "boolean", "doc_values": true }, "keyword_field": { "index": true, "type": "keyword", "doc_values": true }, "text_field": { "analyzer": "lineAnalyzer", "index": true, "type": "text", "term_hash_enable": true, "doc_values": false }, "date_field": { "format": "basic_date", "index": true, "type": "date", "doc_values": true } } } } }
索引中插入数据:
POST test/_bulk { "index" : {} } {"bool_field":true,"date_field":"20220126","keyword_field":"Elasticsearch Serverless","text_field":"Elasticsearch Serverless服务可以为您提供简单易用、弹性灵活、开箱即用的Elasticsearch产品体验,您无须管理Elasticsearch集群资源及配置。"}
返回结果:
{ "took" : 8, "errors" : false, "items" : [ { "index" : { "_index" : ".ts@test@20240625132819", "_type" : "_doc", "_id" : "JAz-TZABtubVNy3ji6Je", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1, "status" : 201 } } ] }
查询索引中的数据:
GET test/_search { "query": { "match": { "keyword_field": "Elasticsearch Serverless" } } }
返回结果:
{ "took" : 32, "timed_out" : false, "_shards" : { "total" : 6, "successful" : 6, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1, "relation" : "eq" }, "max_score" : 0.6931471, "hits" : [ { "_index" : ".ts@test@20240625132819", "_type" : "_doc", "_id" : "f_5UXuTZABDK8p0Q9xETMU", "_score" : 0.6931471, "_source" : { "text_field" : "Elasticsearch Serverless服务可以为您提供简单易用、弹性灵活、开箱即用的Elasticsearch产品体验,您无须管理Elasticsearch集群资源及配置。", "keyword_field" : "Elasticsearch Serverless", "bool_field" : true, "date_field" : "20220126" } } ] } }
管理索引
您可以在应用的索引列表页面,管理索引配置。
项目 | 说明 |
查看索引配置 | 在目标索引的操作列,单击修改配置,查看索引的具体配置。 |
修改索引配置 | 在目标索引的操作列,单击修改配置,修改索引的配置。
|
删除索引 | 在目标索引的操作列,单击删除,删除索引。 |