Creates a new version of an OpenSearch application.
Operation description
If a Standard Edition application with the same name already exists, a new version is created.
The autoSwitch and realtimeShared parameters are required to create a new version.
The quota for the new version is automatically inherited from the previous version.
You cannot modify the quota when you create the new version.
Try it now
Test
RAM authorization
Action | Access level | Resource type | Condition key | Dependent action |
opensearch:CreateApp | create | *App
| None | None |
Request syntax
POST /v4/openapi/app-groups/{appGroupIdentity}/apps HTTP/1.1Path Parameters
Parameter | Type | Required | Description | Example |
appGroupIdentity | string | Yes | The name of the application. | my_app_group_name |
Request parameters
Parameter | Type | Required | Description | Example |
dryRun | boolean | No | Specifies whether to perform a dry run. A dry run checks the validity of the data source but does not create the application. Valid values: true and false. | true |
| body | object | No | The request body. | |
autoSwitch | boolean | No | Specifies whether to automatically set the new version as the online version after it is created.
| false |
networkType | string | No | The network type. Valid values:
| vpc |
description | string | No | The description of the version. | "Version description" |
| schema | object | No | The schema of the single-table application. | |
tables | object | No | The table schema. | { "primaryTable": true, "name": "main", "fields": { "id": { "name": "id", "type": "LITERAL", "primaryKey": true }, "title": { "name": "title", "type": "TEXT", "primaryKey": false }, "buy": { "name": "buy", "type": "INT", "primaryKey": false }, "cate_id": { "name": "cate_id", "type": "INT", "primaryKey": false }, "cate_name": { "name": "cate_name", "type": "LITERAL", "primaryKey": false } } } |
| indexes | object | No | The index schema. | |
| filterFields | array | No | The attribute fields. | |
string | No | The attribute field. | id | |
searchFields | object | No | The index fields. | { "fields": ["title"], "analyzer": "chn_standard" } |
routeField | string | No | The name of the level-1 routing field. | field1 |
| routeFieldValues | array | No | The list of hotspot values for the level-1 routing field. After you configure this parameter, level-2 routing is enabled. | |
string | No | The hotspot value of the level-1 routing field. | routeFieldValues | |
secondRouteField | string | No | The name of the level-2 routing field. This parameter takes effect only when | field2 |
| ttlField | object | No | The document expiration configuration. | |
name | string | No | The document time field. | text1 |
ttl | integer | No | The time to live (TTL), in milliseconds. | 1000 |
| indexSortConfig | array<object> | No | The inverted index configurations. | |
object | No | |||
field | string | No | The sort field. | field1 |
direction | string | No | The sort order. | ASC; DESC; |
name | string | No | The name of the wide table. | table_name |
| schemas | array<object> | No | The schema of the multi-table application. | |
array<object> | No | The schema of the single-table application. | ||
tables | object | No | The table schema. | { "primaryTable": true, "name": "main", "fields": { "id": { "name": "id", "type": "LITERAL", "primaryKey": true }, "title": { "name": "title", "type": "TEXT", "primaryKey": false }, "buy": { "name": "buy", "type": "INT", "primaryKey": false }, "cate_id": { "name": "cate_id", "type": "INT", "primaryKey": false }, "cate_name": { "name": "cate_name", "type": "LITERAL", "primaryKey": false } } } |
| indexes | object | No | The index schema. | |
| filterFields | array | No | The attribute fields. | |
string | No | The attribute field. | id | |
searchFields | object | No | The index fields. | { "fields": ["title"], "analyzer": "chn_standard" } |
routeField | string | No | The name of the level-1 routing field. | field1 |
| routeFieldValues | array | No | The list of hotspot values for the level-1 routing field. After you configure this parameter, level-2 routing is enabled. | |
string | No | The hotspot value of the level-1 routing field. | routeFieldValues | |
secondRouteField | string | No | The name of the level-2 routing field. This parameter takes effect only when routeFieldValues is configured. By default, the primary key of the wide table is used. | field2 |
| ttlField | object | No | The document expiration configuration. | |
name | string | No | The document time field. | text1 |
ttl | integer | No | The time to live (TTL), in milliseconds. | 1000 |
| indexSortConfig | array<object> | No | The inverted index configurations. | |
object | No | |||
field | string | No | The sort field. | field1 |
direction | string | No | The sort order.
| DESC |
name | string | No | The name of the wide table. | table_name |
| firstRanks | array<object> | No | The rough sort configurations. | |
object | No | The rough sort configurations. | ||
type | string | No | The type of the expression.
| STRING |
name | string | No | The name of the rough sort expression. | test |
description | string | No | The description. | Description |
active | boolean | No | Specifies whether the expression is the default one. | False |
meta | any | No | The details of the expression. The value can be an array or a string. | String :"random()*100+now()"; Array: [ { "attribute": "static_bm25()", "arg": "", "weight": 10 } ] |
| secondRanks | array<object> | No | The fine sort configurations. | |
object | No | The fine sort configurations. | ||
meta | any | No | The fine sort expression. You can write an expression that contains fields, feature functions, and mathematical functions to implement complex sort logic. | "cate_id > 0 and cate_id < 1000" |
name | string | No | The name of the fine sort expression. | default |
description | string | No | The description. | Description |
active | boolean | No | Specifies whether the expression is the default one. | False |
| dataSources | array<object> | No | The data source configurations. | |
array<object> | No | The data source configurations. | ||
tableName | string | No | The name of the application table. | main |
type | string | No | The type of the data source.
| rds |
| fields | array<object> | No | The information about field mappings. | |
object | No | The information about field mappings. | { "id": "id" } | |
plugins | object | No | The data processing plugins for fields. Plugin name (name):
Plugin parameters (parameters):
| { "name": "JsonKeyValueExtractor", "parameters": { "key": "my_field" } } |
keyField | string | No | The primary key. | id |
schemaName | string | No | The name of the wide table. | table_name |
parameters | object | No | The information about the data source. | { "instanceId": "rds-instance-id", "dbName": "my_db", "dbTableName": "my_table", "dbUser": "my", "dbPassword": "my_passwd", "filter":"", "autoSync": true } |
| summaries | array<object> | No | The search result summary settings. | |
array<object> | No | The search result summary settings. | ||
name | string | No | The group name. | default |
| meta | array<object> | No | The summary configurations. | |
object | No | The summary configuration. | ||
field | string | No | The field. | field1 |
len | integer | No | The length of the snippet. The value must be in the range of [1, 300]. | 50 |
element | string | No | The HTML tag for highlight. | em |
ellipsis | string | No | The string used to connect snippets. | ... |
snippet | string | No | The number of snippets. The value must be in the range of [1, 5]. | 1 |
| fetchFields | array | No | The default display fields. | |
string | No | The field. | field1 | |
| queryProcessors | array<object> | No | The intention recognition configurations. | |
array<object> | No | The intention recognition configurations. | ||
name | string | No | The rule name. | name |
domain | string | No | The industry. Valid values:
| ECOMMERCE |
category | string | No | The industry category. | "" |
| processors | array<object> | No | The features that are included. | |
object | No | The features that are included. | { "name": "stop_word", "useSystemDictionary": true, "interventionDictionary": "my_dict", "ignoreSpace": true } | |
| indexes | array | No | The indexes of the application. | |
string | No | The application index. | default | |
active | boolean | No | Specifies whether the rule is the default one. | True |
| cluster | object | No | The feature configurations. | |
maxTimeoutMS | integer | No | The timeout period for the cluster, in milliseconds. | 750 |
maxQueryClauseLength | integer | No | The maximum length of the query clause. | 1024 |
textSparseEmbeddingModel | string | No | ops-text-sparse-embedding-001 | |
textEmbeddingModel | string | No | ops-text-embedding-002 | |
| chunkModels | array<object> | No | ||
object | No | |||
| imageContentRecognizerModels | array<object> | No | ||
object | No | |||
graphRag | object | No | ||
| vectorIndexConfigs | array<object> | No | ||
object | No | |||
| domain | object | No | The industry model. | |
name | string | No | The industry. | ecommerce |
category | string | No | The industry category. | general |
functions | object | No | The selected features.
| {"qp":["spellcheck"],"algo":["pop"],"service":["suggest"]} |
realtimeShared | boolean | No | ||
| interpretations | array<object> | No | ||
object | No | |||
| prompts | array<object> | No | ||
object | No | |||
| configItems | array<object> | No | ||
object | No |
Request body
Parameter | Type | Required | Example | Description |
type | String | Yes | "standard" | The application type. |
schema | Object | Yes | The schema of the application version. | |
fetchFields | Array | Yes | ["id", "name"] | The default display fields. |
realtimeShared | Boolean | Yes | false | Specifies whether to share the real-time stream. |
autoSwitch | Boolean | Yes | false | Specifies whether to automatically set the version as the online version. |
description | String | No | "demo" | The description. |
quota | Object | No | The quota of the application version. | |
dataSources[] | Object | No | The details of the data sources. | |
firstRanks[] | Object | No | The details of the rough sort expressions. | |
secondRanks[] | Object | No | The details of the fine sort expressions. | |
queryProcessors[] | Object | No | The details of the intention recognition rules. | |
summaries[] | Object | No | The search result summary settings. |
Response elements
Element | Type | Description | Example |
object | |||
requestId | string | The request ID. | ABCDEFG |
| result | object | The response data. | {} |
id | string | The application ID. | 12888 |
isCurrent | boolean | Indicates whether the version is the online version. | 12333 |
clusterName | string | The name of the cluster. | vpc_sh_domain_1 |
type | string | The application type.
| standard |
description | string | The application description. | My App |
status | string | The application status.
| OK |
| schema | object | The schema of the single-table application. | |
tables | object | The table schema. | { "primaryTable": true, "name": "main", "fields": { "id": { "name": "id", "type": "LITERAL", "primaryKey": true }, "title": { "name": "title", "type": "TEXT", "primaryKey": false }, "buy": { "name": "buy", "type": "INT", "primaryKey": false }, "cate_id": { "name": "cate_id", "type": "INT", "primaryKey": false }, "cate_name": { "name": "cate_name", "type": "LITERAL", "primaryKey": false } } } |
| indexes | object | The index schema. | |
| filterFields | array | The attribute fields. | |
string | The attribute field. | id | |
searchFields | object | The index fields. | { "fields": ["title"], "analyzer": "chn_standard" } |
routeField | string | The name of the level-1 routing field. | field1 |
| routeFieldValues | array | The name of the level-2 routing field. This parameter takes effect only when routeFieldValues is configured. By default, the primary key of the wide table is used. | |
string | The hotspot value of the level-1 routing field. | routeFieldValues | |
secondRouteField | string | The name of the level-2 routing field. This parameter takes effect only when routeFieldValues is configured. By default, the primary key of the wide table is used. | field2 |
| ttlField | object | The document expiration configuration. | |
name | string | The document time field. | text1 |
ttl | integer | The time to live (TTL), in milliseconds. | 1000 |
| indexSortConfig | array<object> | The inverted index configurations. | |
object | The inverted index configuration. | ||
field | string | The sort field. | field1 |
direction | string | The sort order.
| DESC |
name | string | The name of the wide table. | test |
progressPercent | integer | The data import progress, in percentage. | 100 |
| fetchFields | array | The default display fields. | |
string | The default display field. | field1 | |
| domain | object | The industry model. | |
category | string | The industry category. | - |
name | string | The industry. Valid values:
| GENERAL |
| functions | object | The selected features. | |
| service | array | The ancillary service features. | |
string | The ancillary service features. | suggest | |
| qp | array | The query analysis features. | |
string | The query analysis features. | spellcheck | |
| algo | array | The sort policy features. | |
string | The sort policy features. | pop | |
| schemas | array<object> | The schema of the multi-table application. | |
array<object> | The application schema. | ||
tables | object | The table schema. | { "primaryTable": true, "name": "main", "fields": { "id": { "name": "id", "type": "LITERAL", "primaryKey": true }, "title": { "name": "title", "type": "TEXT", "primaryKey": false }, "buy": { "name": "buy", "type": "INT", "primaryKey": false }, "cate_id": { "name": "cate_id", "type": "INT", "primaryKey": false }, "cate_name": { "name": "cate_name", "type": "LITERAL", "primaryKey": false } } } |
| indexes | object | The index schema. | |
| filterFields | array | The attribute fields. | |
string | The attribute field. | field1 | |
searchFields | object | The index fields. | { "fields": ["title"], "analyzer": "chn_standard" } |
routeField | string | The name of the level-1 routing field. | field1 |
| routeFieldValues | array | The list of hotspot values for the level-1 routing field. After you configure this parameter, level-2 routing is enabled. | |
string | The hotspot value of the level-1 routing field. | routeFieldValues | |
secondRouteField | string | The name of the level-2 routing field. This parameter takes effect only when routeFieldValues is configured. By default, the primary key of the wide table is used. | field2 |
| ttlField | object | The document expiration configuration. | |
name | string | The document time field. | fIeld1 |
ttl | integer | The time to live (TTL), in milliseconds. | 1000 |
| indexSortConfig | array<object> | The inverted index configuration. | |
object | The inverted index configuration. | ||
field | string | The sort field. | fIeld1 |
direction | string | The sort order.
| DESC |
name | string | The name of the wide table. | main |
| firstRanks | array<object> | The rough sort configurations. | |
object | The rough sort configurations. | ||
type | string | The type of the expression. Valid values: `STRUCT`: a structured expression. `STRING`: a custom formula. Default value: `STRING`. STRUCT: The content of the expression is a structure. STRING (default): custom formula. | STRING |
name | string | The name of the rough sort expression. | test |
description | string | The description. | Description |
active | boolean | Specifies whether the expression is the default one. | False |
meta | any | The details of the expression. The value can be an array or a string. | String :"random()*100+now()"; Array: [ { "attribute": "static_bm25()", "arg": "", "weight": 10 } ] |
| secondRanks | array<object> | The fine sort configurations. | |
object | The fine sort configuration. | ||
meta | any | The fine sort expression. You can write an expression that contains fields, feature functions, and mathematical functions to implement complex sort logic. | "cate_id > 0 and cate_id < 1000" |
name | string | The name of the fine sort expression. | default |
description | string | The description. | default |
active | boolean | Specifies whether the expression is the default one. | False |
| dataSources | array<object> | The data source configurations. | |
array<object> | The data source configurations. | ||
tableName | string | The name of the application table. | main |
type | string | The type of the data source.
| rds |
| fields | array<object> | The information about field mappings. | |
object | The information about field mappings. | { "id": "id" } | |
plugins | object | The data processing plugins for fields. Plugin name (name):
Plugin parameters (parameters):
| { "name": "JsonKeyValueExtractor", "parameters": { "key": "my_field" } } |
keyField | string | The primary key. | id |
schemaName | string | The name of the wide table. | table_name |
parameters | object | The information about the data source. | { "instanceId": "rds-instance-id", "dbName": "my_db", "dbTableName": "my_table", "dbUser": "my", "dbPassword": "my_passwd", "filter":"", "autoSync": true } |
| summaries | array<object> | The search result summary settings. | |
array<object> | The search result summary settings. | ||
name | string | The group name. | fefault |
| meta | array<object> | The summary configurations. | |
object | The summary configuration. | ||
field | string | The field. | field1 |
len | integer | The length of the snippet. The value must be in the range of [1, 300]. | 50 |
element | string | The HTML tag for highlight. | em |
ellipsis | string | The string used to connect snippets. | ... |
snippet | string | The number of snippets. The value must be in the range of [1, 5]. | 5 |
| queryProcessors | array<object> | The intention recognition configurations. | |
array<object> | The intention recognition configurations. | ||
name | string | The rule name. | test |
domain | string | The industry. Valid values:
| GENERAL |
category | string | The industry category. | "" |
| processors | array<object> | The features that are included. | |
object | The features that are included. | { "name": "stop_word", "useSystemDictionary": true, "interventionDictionary": "my_dict", "ignoreSpace": true } | |
| indexes | array | The indexes of the application. | |
string | The application index. | id | |
active | boolean | Specifies whether the rule is the default one. | False |
| cluster | object | The feature configurations. | |
maxTimeoutMS | integer | The timeout period for the cluster, in milliseconds. | 750 |
maxQueryClauseLength | integer | The maximum length of the query clause. | 1024 |
textEmbeddingModel | string | ||
textSparseEmbeddingModel | string | ||
| chunkModels | array<object> | ||
object | |||
| imageContentRecognizerModels | array<object> | ||
object | |||
graphRag | object | ||
| vectorIndexConfigs | array<object> | ||
object | |||
| prompts | array<object> | The prompt configurations. | |
object | The prompt configuration. | { "name" : "prompt_name", "isDefault" : false, "description":"Description", "prompt" : { "parameters" : [ { "name" : "docs", "value" : "The way to concatenate doc content, for example, the current qwen's ' \n${doc}\n\n" } ], "messages":[ { "role" : "role_name; here, restrict it to only 'system', 'user', 'assistant', or allow users to freely input", "content" : "The prompt content set by the user, which can use {parameter_key} to represent content expected to be dynamically replaced; refer to the explanation below for specific replacement rules" } ] } } | |
| quota | object | The quota of the version. | |
qps | integer | The queries per second (QPS). | 5 |
computeResource | integer | The compute resources. | 20 |
docSize | integer | The storage capacity. | 1 |
spec | string | The instance specifications. Valid values:
| opensearch.share.common |
usedQps | integer | 100 | |
usedDocSize | number | 1024 | |
usedComputeResource | integer | 100 | |
interpretations | object | The descriptions of the large language model (LLM) table fields. | { "name": "longyu_llm_1", "schemas": [], "interpretations": [ { "table": "table1", "fields": [ { "name": "field1", "interpretation": "Title" }, { "name": "field2", "interpretation": "No." } ] } ] } |
| configItems | array<object> | ||
object | |||
updated | integer | ||
created | integer | ||
switchTime | integer |
Examples
Success response
JSON format
{
"requestId": "ABCDEFG",
"result": {
"id": "12888",
"isCurrent": true,
"clusterName": "vpc_sh_domain_1",
"type": "standard",
"description": "My App",
"status": "OK",
"schema": {
"tables": {
"primaryTable": true,
"name": "main",
"fields": {
"id": {
"name": "id",
"type": "LITERAL",
"primaryKey": true
},
"title": {
"name": "title",
"type": "TEXT",
"primaryKey": false
},
"buy": {
"name": "buy",
"type": "INT",
"primaryKey": false
},
"cate_id": {
"name": "cate_id",
"type": "INT",
"primaryKey": false
},
"cate_name": {
"name": "cate_name",
"type": "LITERAL",
"primaryKey": false
}
}
},
"indexes": {
"filterFields": [
"id"
],
"searchFields": {
"fields": [
"title"
],
"analyzer": "chn_standard"
}
},
"routeField": "field1",
"routeFieldValues": [
"routeFieldValues"
],
"secondRouteField": "field2\n",
"ttlField": {
"name": "text1\n",
"ttl": 1000
},
"indexSortConfig": [
{
"field": "field1",
"direction": "DESC"
}
],
"name": "test"
},
"progressPercent": 100,
"fetchFields": [
"field1"
],
"domain": {
"category": "-",
"name": "GENERAL",
"functions": {
"service": [
"suggest\n\n"
],
"qp": [
"spellcheck"
],
"algo": [
"pop"
]
}
},
"schemas": [
{
"tables": {
"primaryTable": true,
"name": "main",
"fields": {
"id": {
"name": "id",
"type": "LITERAL",
"primaryKey": true
},
"title": {
"name": "title",
"type": "TEXT",
"primaryKey": false
},
"buy": {
"name": "buy",
"type": "INT",
"primaryKey": false
},
"cate_id": {
"name": "cate_id",
"type": "INT",
"primaryKey": false
},
"cate_name": {
"name": "cate_name",
"type": "LITERAL",
"primaryKey": false
}
}
},
"indexes": {
"filterFields": [
"field1"
],
"searchFields": {
"fields": [
"title"
],
"analyzer": "chn_standard"
}
},
"routeField": "field1\n",
"routeFieldValues": [
"routeFieldValues"
],
"secondRouteField": "field2",
"ttlField": {
"name": "fIeld1",
"ttl": 1000
},
"indexSortConfig": [
{
"field": "fIeld1",
"direction": "DESC"
}
],
"name": "main"
}
],
"firstRanks": [
{
"type": "STRING",
"name": "test",
"description": "Description",
"active": true,
"meta": "String :\"random()*100+now()\";\nArray: [\n {\n \"attribute\": \"static_bm25()\",\n \"arg\": \"\",\n \"weight\": 10\n }\n ]"
}
],
"secondRanks": [
{
"meta": "\"cate_id > 0 and cate_id < 1000\"\n",
"name": "default\n",
"description": "default\n",
"active": true
}
],
"dataSources": [
{
"tableName": "main",
"type": "rds",
"fields": [
{
"id": "id"
}
],
"plugins": {
"name": "JsonKeyValueExtractor",
"parameters": {
"key": "my_field"
}
},
"keyField": "id",
"schemaName": "table_name",
"parameters": {
"instanceId": "rds-instance-id",
"dbName": "my_db",
"dbTableName": "my_table",
"dbUser": "my",
"dbPassword": "my_passwd",
"filter": "",
"autoSync": true
}
}
],
"summaries": [
{
"name": "fefault",
"meta": [
{
"field": "field1",
"len": 50,
"element": "em",
"ellipsis": "...",
"snippet": "5"
}
]
}
],
"queryProcessors": [
{
"name": "test",
"domain": "GENERAL",
"category": "\"\"",
"processors": [
{
"name": "stop_word",
"useSystemDictionary": true,
"interventionDictionary": "my_dict",
"ignoreSpace": true
}
],
"indexes": [
"id"
],
"active": true
}
],
"cluster": {
"maxTimeoutMS": 750,
"maxQueryClauseLength": 1024,
"textEmbeddingModel": "",
"textSparseEmbeddingModel": "",
"chunkModels": [
{
"test": "test",
"test2": 1
}
],
"imageContentRecognizerModels": [
{
"test": "test",
"test2": 1
}
],
"graphRag": {
"test": "test",
"test2": 1
},
"vectorIndexConfigs": [
{
"test": "test",
"test2": 1
}
]
},
"prompts": [
{
"name": "prompt_name",
"isDefault": false,
"description": "Description",
"prompt": {
"parameters": [
{
"name": "docs",
"value": "The way to concatenate doc content, for example, the current qwen's '\n${doc}\n\n"
}
],
"messages": [
{
"role": "role_name; here, restrict it to only 'system', 'user', 'assistant', or allow users to freely input",
"content": "The prompt content set by the user, which can use {parameter_key} to represent content expected to be dynamically replaced; refer to the explanation below for specific replacement rules"
}
]
}
}
],
"quota": {
"qps": 5,
"computeResource": 20,
"docSize": 1,
"spec": "opensearch.share.common",
"usedQps": 100,
"usedDocSize": 1024,
"usedComputeResource": 100
},
"interpretations": {
"name": "longyu_llm_1",
"schemas": [],
"interpretations": [
{
"table": "table1",
"fields": [
{
"name": "field1",
"interpretation": "Title"
},
{
"name": "field2",
"interpretation": "No."
}
]
}
]
},
"configItems": [
{
"test": "test",
"test2": 1
}
],
"updated": 0,
"created": 0,
"switchTime": 0
}
}Error codes
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.