调用 ModifyIndex 接口修改索引配置。
本接口用于修改日志主题的索引配置信息。调用频率限制为 20 次/s,超出频率限制会报错 ExceedQPSLimit。
说明
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
TopicId | String | 是 | 4a********* | 日志主题 ID。 |
FullText | Object of FullTextInfo | 否 |
| 全文索引配置。
|
KeyValue | Array of KeyValueInfo | 否 |
| 键值索引配置。
|
UserInnerKeyValue | Array of KeyValueInfo | 否 |
| 预留字段索引配置。
|
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Delimiter | String | 是 |
| 全文索引的分词符。
|
CaseSensitive | Boolean | 是 |
| 是否大小写敏感。
|
IncludeChinese | Boolean | 否 |
| 是否包含中文。默认为 false,即不包含。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Key | String | 是 |
| 需要配置键值索引的字段名称,最多添加 100 个字段。
说明 对于 JSON 类型键值索引的子字段,需要通过.表示 JSON 字段之间的层级关系,例如 JSON 字段 namelist 中包含 text 类型的子字段 totalcount 和 JSON 类型的 info,info 中又包含字段 name,各个字段名称应分别配置为totalcount 和 info.name。 |
Value | Object of Value | 是 | "Value": { "ValueType": "text", "Delimiter": "", "CaseSensitive": true, "IncludeChinese": false, "SqlFlag": false } | 需要配置键值索引的字段描述信息。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
SqlFlag | Boolean | 否 |
| 字段是否开启分析功能。默认为 false。 |
IndexAll | Boolean | 否 | false | 是否为 JSON 字段中所有值为文本的字段创建索引。 |
JsonKeys | Array of KeyValueInfo | 否 |
| 当 ValueType 为 json 时,可通过 JsonKeys 字段配置 JSON 子字段键值索引,其值为 KeyValueInfo 数组。
|
Delimiter | String | 否 |
| 字段的分词符。默认为空("")。
|
ValueType | String | 是 |
| 字段类型。
|
CaseSensitive | Boolean | 否 | true | 是否区分大小写。默认为 false。 |
IncludeChinese | Boolean | 否 |
| 是否包含中文。默认为 false,即不包含中文。 |
本接口无特有的返回参数。更多信息请见返回结构。
全文索引示例
PUT https://tls-{Region}.ivolces.com/ModifyIndex HTTP/1.1 Content-Type: application/json { "TopicId": "3***********", "FullText": { "Delimiter": ",-;", "CaseSensitive": false, "IncludeChinese": false } }
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 {}
全文索引和键值索引示例
PUT https://tls-{Region}.ivolces.com/ModifyIndex HTTP/1.1 Content-Type: application/json { "TopicId":"39********", "FullText":{ "Delimiter":",-;" }, "KeyValue":[ { "Key":"test1", "Value":{ "ValueType":"text", "Delimiter":"", "CaseSensitive":true, "IncludeChinese":false, "SqlFlag":false } }, { "Key":"test2", "Value":{ "ValueType":"long", "Delimiter":"", "CaseSensitive":false, "IncludeChinese":false, "SqlFlag":true } }, { "Key":"test3", "Value":{ "ValueType":"json", "Delimiter":"", "CaseSensitive":false, "IncludeChinese":false, "SqlFlag":true, "JsonKeys":[ { "Key":"key1", "Value":{ "ValueType":"text", "SqlFlag":true } }, { "Key":"key2", "Value":{ "ValueType":"long", "SqlFlag":true } }, { "Key":"key3.key4.key5", "Value":{ "ValueType":"double", "SqlFlag":true } } ] } } ] }
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 {}
键值索引和预留字段索引示例
PUT https://tls-{Region}.ivolces.com/ModifyIndex HTTP/1.1 Content-Type: application/json { "TopicId":"39********", "KeyValue":[ { "Key":"test1", "Value":{ "ValueType":"text", "Delimiter":"", "CaseSensitive":true, "IncludeChinese":false, "SqlFlag":false } }, { "Key":"test2", "Value":{ "ValueType":"long", "Delimiter":"", "CaseSensitive":false, "IncludeChinese":false, "SqlFlag":true } }, { "Key":"test3", "Value":{ "ValueType":"json", "Delimiter":"", "CaseSensitive":false, "IncludeChinese":false, "SqlFlag":true, "JsonKeys":[ { "Key":"key1", "Value":{ "ValueType":"text", "SqlFlag":true } }, { "Key":"key2", "Value":{ "ValueType":"long", "SqlFlag":true } }, { "Key":"key3.key4.key5", "Value":{ "ValueType":"double", "SqlFlag":true } } ] } } ], "UserInnerKeyValue": [ { "Key": "__content__", "Value": { "ValueType": "json", "Delimiter": ",:-/ ", "CaseSensitive": false, "IncludeChinese": false, "SqlFlag": false, "JsonKeys": [ { "Key": "name", "Value": { "ValueType": "text", "SqlFlag": false } }, { "Key": "age", "Value": { "ValueType": "long", "SqlFlag": false } }, { "Key": "education.master.college", "Value": { "ValueType": "text", "SqlFlag": false } } ] } } ] }
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 {}
下表为您列举了该接口与业务逻辑相关的错误码。公共错误码请参见公共错误码文档。
HTTP 状态码 | 错误码 | 错误信息 | 说明 |
---|---|---|---|
400 | InvalidArgument | Invalid argument key %s, value %s, please check argument. | 参数不合法。 |
400 | InvalidArgument | At least one of full-text indexing and key-value indexing must be turned on. | 全文索引与键值索引至少要开启一项。 |
400 | InvalidArgument | Index key value_type:%s conflict with [includeChinese:%t, casSensitive:%t, delimiter:%s], please check argument. | long/double 类型不支持配置包含中文、大小写敏感和分词符。 |
400 | InvalidIndexJsonKeys | Non-JSON field %s configures JsonKeys, please check argument. | 非 JSON 字段配置子字段。 |
400 | ConflictIndexJsonKeys | JsonKeys %s and %s have conflict prefix, please check argument. | JsonKeys 键名存在前缀冲突。 |
400 | InvalidArgument | Index key sqlFlag:%t conflict with [includeChinese:%t, delimiter:%s], please check argument. | 开启统计后,不支持配置包含中文和分词符。 |
400 | IndexKeyValueQuotaExceed | Exceeded index key-value quota. | 超过键值索引限额。 |
400 | IndexKeyDuplicate | The %dth index key name:%s is duplicate, please check argument. | 索引的键值名称重复。 |
400 | InvalidArgument | Index key delimiter:%s conflict with includeChinese:%t, please check argument. | 分词符和中分分词不能同时配置。 |
400 | IndexKVNULL | Index key value index is open, but the key value list is null, please check argument. | 键值索引配置的键值个数为 0。 |
404 | TopicNotExist | Topic does not exist. | 日志主题不存在。 |
409 | IndexAlreadyExist | Index already exist | 索引已存在。 |
500 | InternalServerError | We encountered an unexpected server error, please try again later. | 服务器内部错误。 |
400 | IndexInnerKeyUnSupport | key-value indexing for inner key: %v, doesn't support | 不支持为 %v 字段设置预留字段索引。 |
400 | IndexInnerKeyConflict | full-text indexing and content indexing can't be set together | 全文索引与__content__索引配置冲突。 |