云服务器内容精选

  • 请求参数 表2 Body参数说明 参数 是否必选 类型 说明 indexName 是 String 索引名称。只能包含字母,数字,-和_。不能包含其他字符。索引名称的长度需在63字符以内。 indexType 是 String 索引的类型,区分大小写。 “GlobalCompositeVertexIndex”为全局的Composite类型的点索引。 “GlobalCompositeEdgeIndex”为全局的Composite类型的边索引。 “CompositeVertexIndex”为局部的Composite类型的点索引。 “CompositeEdgeIndex”为局部的Composite类型的边索引。 “FullTextIndex”为全文索引。 hasLabel 否 Boolean 是否有label,默认为false。 true false indexLabel 否 List Label列表,仅在indexType为CompositeVertexIndex或CompositeEdgeIndex时有效,而且为必填项,用来指定在哪些label上建立索引。 indexProperty 否(若hasLabel为false或null,则该项为必选) List 索引的属性列表。 可以创建索引的属性类型有: integer、 float、 double、 long、 enum、 string、 date。 strLength 否 Integer String类型的属性在编码索引时会按照一固定长度来截断,strLength用于指定此截断长度。未指定时默认值为40字节,用户可指定范围为[1, 256]。 通常用户不需要手动指定此参数,即使有些属性超过此长度,索引编码时被截断。一般也不会有明显的性能劣化。除非绝大多数属性均超过默认长度,可以考虑适当增大strLength,但是会带来索引修改的性能下降。 如果属性类型为string,属性长度建议不要超过40个字节,超出的部分会被截断。 Cypher查询可以借助hasLabel为True的索引来加速。 indexProperty为空时,建立的索引为label索引,可以加速label过滤。 indexProperty不为空时,建立的索引为属性索引,可以加速对应的属性过滤。
  • 响应参数 表3 响应Body参数说明 参数 类型 说明 errorMessage String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误信息。 errorCode String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误码。 jobId String 执行该异步任务的jobId。 说明: 可以查询jobId查看任务执行状态、获取返回结果,详情参考Job管理API。 jobType String 执行该异步任务的jobType。 result String 成功时result值为success。
  • 请求示例 创建复合索引,索引名称为ageIndex,索引类型为全局点索引。 POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/indices { "indexName":"ageIndex", "indexType": "GlobalCompositeVertexIndex", "hasLabel": true, "indexProperty": ["age"] } SERVER_URL:图的访问地址,取值请参考业务面API使用限制。
  • 功能介绍 根据给定的indexName,IndexType等信息创建索引。目前支持两种索引:复合索引和全文索引。 复合索引有全局点索引(GlobalCompositeVertexIndex),全局边索引(GlobalCompositeEdgeIndex)以及局部点索引(CompositeVertexIndex),和局部边索引(CompositeEdgeIndex)。复合索引是针对固定组合的属性建立的,其中局部索引可以在指定的label上建立索引。而全局索引复合索引不需要指定label,只要某个label包含指定属性,就会自动在此label上建立索引。使用索引查询可以加快速度。 全文索引(FullTextIndex)可以实现全文搜索、模糊搜索等功能。由于全文索引的刷新机制,更新数据后立即查询可能查到的是旧数据,建议更新后间隔60秒以上再进行查询。全文索引的使用请查看点过滤查询和边过滤查询。您也可以使用cypher语句来执行全文索引,具体请查看cypher操作相关章节。 目前全文索引特性只在持久化版规格版本中支持。 索引创建后需要等待30秒索引同步时间,同步完成后Cypher查询才可以利用索引进行加速。
  • 响应示例 状态码: 200 成功响应示例 Http Status Code: 200 { "jobId": "f99f60f1-bba6-4cde-bd1a-ff4bdd1fd500000168232", "jobType": 8 } 状态码: 400 失败响应示例 Http Status Code: 400 { "errorMessage": "graph [demo] is not found", "errorCode": "GES.8603" }
  • 不支持的范围 在应用设计态添加索引时,不支持选择RdmDeleteFlag和MasterId属性。 不支持JSON、文件、URL和长文本类型的属性。 选择“普通索引”时,如果属性的约束信息包含如下定义,则不支持。 “入库”为“否”的属性。 “多值”为“是”的属性。 “唯一键”为“是”的属性。 选择“唯一索引”时,如果属性的约束信息包含如下定义,则不支持。 “入库”为“否”的属性。 “多值”为“是”的属性。 “唯一键”为“是”的属性。 选择“唯一索引忽略大小写”时,如果属性的约束信息包含如下定义,则不支持。 “入库”为“否”的属性。 “多值”为“是”的属性。 “唯一键”为“是”的属性。
  • CSS服务中如何清理Elasticsearch索引数据? 自动化定期清理 可以写定时任务调用清理索引的请求,定期执行。CSS支持Opendistro Index State Management,可以参考案例通过索引生命周期实现索引存算分离设置定期清理数据。 Opendistro Index State Management的详细说明请参见:https://opendistro.github.io/for-elasticsearch-docs/docs/im/ism/ 手动清理 登录Kibana,在Dev tools里执行DELETE /索引名命令。 登录Cerebro,过滤检索出目标索引名,单击索引名称,选择“delete index” 并在弹框中选择 “Confirm”。 图1 Cerebro删除索引 父主题: CSS集群搜索引擎使用
  • 方案概述 对于时间序列数据,随着时间推移数据持续写入,索引会越来越大,通过生命周期管理来定期将数据滚动到新索引,并将历史老索引删除,实现自动滚动索引。 本案例通过配置生命周期策略,当索引的大小达到1TB或索引创建超过1天时,自动滚动生成新索引;当索引创建7天后,关闭数据副本;当索引创建30天后,删除该索引。 假设某个索引,其每天约产生2.4TB的数据,索引别名“log-alias”,其数据在Elasticsearch中的组织形态如下图所示。查询时,指向所有test开头的索引;写入时,指向最新的索引。 图1 log-alias的组织形态 索引的滚动条件1天是以索引的创建时间来计算的,并不是完整自然日区分的。
  • 方案概述 对于时间序列数据,随着时间推移数据持续写入,索引会越来越大,通过生命周期管理来定期将数据滚动到新索引,并将历史老索引删除,实现自动滚动索引。 本案例通过配置生命周期策略,当索引的大小达到1TB或索引创建超过1天时,自动滚动生成新索引;当索引创建7天后,关闭数据副本;当索引创建30天后,删除该索引。 假设某个索引,其每天约产生2.4TB的数据,索引别名“log-alias”,其数据在Elasticsearch中的组织形态如下图所示。查询时,指向所有test开头的索引;写入时,指向最新的索引。 图1 log-alias的组织形态 索引的滚动条件1天是以索引的创建时间来计算的,并不是完整自然日区分的。
  • SPATIAL空间索引 GaussDB (DWS)不支持SPATIAL空间索引。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 内联SPATIAL空间索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 CREATE TABLE `public`.`test_create_table04` ( `ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `A` POINT NOT NULL, `B` POLYGON NOT NULL, `C` GEOMETRYCOLLECTION NOT NULL, `D` LINESTRING NOT NULL, `E` MULTILINESTRING NOT NULL, `F` MULTIPOINT NOT NULL, `G` MULTIPOLYGON NOT NULL, SPATIAL INDEX A_INDEX(A), SPATIAL INDEX B_INDEX(B), SPATIAL INDEX C_INDEX(C), SPATIAL KEY D_INDEX(D), SPATIAL KEY E_INDEX(E), SPATIAL KEY F_INDEX(F), SPATIAL INDEX G_INDEX(G) ); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 CREATE TABLE "public"."test_create_table04" ( "id" SERIAL NOT NULL PRIMARY KEY, "a" POINT NOT NULL, "b" POLYGON NOT NULL, "c" GEOMETRYCOLLECTION NOT NULL, "d" POLYGON NOT NULL, "e" BOX NOT NULL, "f" BOX NOT NULL, "g" POLYGON NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); CREATE INDEX "a_index" ON "public"."test_create_table04" USING GIST ("a"); CREATE INDEX "b_index" ON "public"."test_create_table04" USING GIST ("b"); CREATE INDEX "c_index" ON "public"."test_create_table04" USING GIST ("c"); CREATE INDEX "d_index" ON "public"."test_create_table04" USING GIST ("d"); CREATE INDEX "e_index" ON "public"."test_create_table04" USING GIST ("e"); CREATE INDEX "f_index" ON "public"."test_create_table04" USING GIST ("f"); CREATE INDEX "g_index" ON "public"."test_create_table04" USING GIST ("g"); ALTER TABLE创建SPATIAL空间索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLE `public`.`test_create_table04` ( `ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `A` POINT NOT NULL, `B` POLYGON NOT NULL, `C` GEOMETRYCOLLECTION NOT NULL, `D` LINESTRING NOT NULL, `E` MULTILINESTRING NOT NULL, `F` MULTIPOINT NOT NULL, `G` MULTIPOLYGON NOT NULL ); ALTER TABLE `test_create_table04` ADD SPATIAL INDEX A_INDEX(A); ALTER TABLE `test_create_table04` ADD SPATIAL INDEX E_INDEX(E) USING BTREE; 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 CREATE TABLE "public"."test_create_table04" ( "id" SERIAL NOT NULL PRIMARY KEY, "a" POINT NOT NULL, "b" POLYGON NOT NULL, "c" GEOMETRYCOLLECTION NOT NULL, "d" POLYGON NOT NULL, "e" BOX NOT NULL, "f" BOX NOT NULL, "g" POLYGON NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); CREATE INDEX "a_index" ON "public"."test_create_table04" USING GIST ("a"); CREATE INDEX "e_index" ON "public"."test_create_table04" USING GIST ("e"); CREATE INDEX创建SPATIAL空间索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE `public`.`test_create_table04` ( `ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `A` POINT NOT NULL, `B` POLYGON NOT NULL, `C` GEOMETRYCOLLECTION NOT NULL, `D` LINESTRING NOT NULL, `E` MULTILINESTRING NOT NULL, `F` MULTIPOINT NOT NULL, `G` MULTIPOLYGON NOT NULL ); CREATE SPATIAL INDEX A_INDEX ON `test_create_table04`(A); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE TABLE "public"."test_create_table04" ( "id" SERIAL NOT NULL PRIMARY KEY, "a" POINT NOT NULL, "b" POLYGON NOT NULL, "c" GEOMETRYCOLLECTION NOT NULL, "d" POLYGON NOT NULL, "e" BOX NOT NULL, "f" BOX NOT NULL, "g" POLYGON NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); CREATE INDEX "a_index" ON "public"."test_create_table04" USING GIST ("a"); 父主题: 索引
  • 唯一索引 GaussDB(DWS)不支持唯一索引(约束)与主键约束联合使用。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 MySQL唯一索引(约束)与主键约束联合使用的场景在工具迁移时会与OLAP场景下的分布键构成复杂的关系。工具暂不支持唯一索引(约束)与主键约束联合使用的场景。 内联唯一索引,如存在主键索引与唯一索引是相同列,DSC工具迁移时会将唯一索引移除。 输入示例 1 2 3 4 5 6 CREATE TABLE IF NOT EXISTS `public`.`runoob_dataType_test` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(128) NOT NULL, UNIQUE (id ASC) ); 输出示例 1 2 3 4 5 6 7 8 CREATE TABLE IF NOT EXISTS "public"."runoob_datatype_test" ( "id" SERIAL PRIMARY KEY, "name" VARCHAR(128) NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); ALTER TABLE创建唯一索引,DSC工具迁移时会根据GaussDB(DWS)的特性创建普通索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 CREATE TABLE IF NOT EXISTS `public`.`runoob_alter_test`( `dataType1` int, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8) )ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE runoob_alter_test ADD UNIQUE idx_runoob_alter_test_datatype1(dataType1); ALTER TABLE runoob_alter_test ADD UNIQUE INDEX idx_runoob_alter_test_datatype1(dataType2); ALTER TABLE runoob_alter_test ADD UNIQUE KEY idx_runoob_alter_test_datatype1(dataType3); CREATE TABLE IF NOT EXISTS `public`.`runoob_alter_test`( `dataType1` int, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8), `dataType4` TEXT NOT NULL, `dataType5` YEAR NOT NULL DEFAULT '2018', `dataType6` DATETIME NOT NULL DEFAULT '2018-10-12 15:27:33.999999' )ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE runoob_alter_test ADD CONSTRAINT UNIQUE idx_runoob_alter_test_datatype1(dataType1); ALTER TABLE runoob_alter_test ADD CONSTRAINT UNIQUE INDEX idx_runoob_alter_test_datatype2(dataType2); ALTER TABLE runoob_alter_test ADD CONSTRAINT UNIQUE KEY idx_runoob_alter_test_datatype3(dataType3); ALTER TABLE runoob_alter_test ADD CONSTRAINT constraint_dataType UNIQUE idx_runoob_alter_test_datatype4(dataType4); ALTER TABLE runoob_alter_test ADD CONSTRAINT constraint_dataType UNIQUE INDEX idx_runoob_alter_test_datatype5(dataType5); ALTER TABLE runoob_alter_test ADD CONSTRAINT constraint_dataType UNIQUE KEY idx_runoob_alter_test_datatype6(dataType6); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 CREATE TABLE IF NOT EXISTS "public"."runoob_alter_test" ( "datatype1" INTEGER, "datatype2" REAL, "datatype3" DOUBLE PRECISION ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); CREATE INDEX "idx_runoob_alter_test_datatype1" ON "public"."runoob_alter_test" ("datatype1"); CREATE INDEX "idx_runoob_alter_test_datatype1" ON "public"."runoob_alter_test" ("datatype2"); CREATE INDEX "idx_runoob_alter_test_datatype1" ON "public"."runoob_alter_test" ("datatype3"); CREATE TABLE IF NOT EXISTS "public"."runoob_alter_test" ( "datatype1" INTEGER, "datatype2" REAL, "datatype3" DOUBLE PRECISION, "datatype4" TEXT NOT NULL, "datatype5" SMALLINT NOT NULL DEFAULT '2018', "datatype6" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT '2018-10-12 15:27:33.999999' ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); CREATE INDEX "idx_runoob_alter_test_datatype1" ON "public"."runoob_alter_test" ("datatype1"); CREATE INDEX "idx_runoob_alter_test_datatype2" ON "public"."runoob_alter_test" ("datatype2"); CREATE INDEX "idx_runoob_alter_test_datatype3" ON "public"."runoob_alter_test" ("datatype3"); CREATE INDEX "idx_runoob_alter_test_datatype4" ON "public"."runoob_alter_test" ("datatype4"); CREATE INDEX "idx_runoob_alter_test_datatype5" ON "public"."runoob_alter_test" ("datatype5"); CREATE INDEX "idx_runoob_alter_test_datatype6" ON "public"."runoob_alter_test" ("datatype6"); CREATE INDEX创建唯一索引,DSC工具迁移时会根据GaussDB(DWS)的特性创建普通索引。 输入示例 1 2 3 4 5 6 7 8 9 CREATE TABLE `public`.`test_index_table01` ( `TABLE01_ID` INT(11) NOT NULL, `TABLE01_THEME` VARCHAR(100) NULL DEFAULT NULL, `AUTHOR_NAME` CHAR(10) NULL DEFAULT NULL, `AUTHOR_ID` INT(11) NULL DEFAULT NULL, `CREATE_TIME` INT NULL DEFAULT NULL, PRIMARY KEY(`TABLE01_ID`) ); CREATE UNIQUE INDEX AUTHOR_INDEX ON `test_index_table01`(AUTHOR_ID); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLE "public"."test_index_table01" ( "table01_id" INTEGER NOT NULL, "table01_theme" VARCHAR(400) DEFAULT NULL, "author_name" CHAR(40) DEFAULT NULL, "author_id" INTEGER DEFAULT NULL, "create_time" INTEGER DEFAULT NULL, PRIMARY KEY ("table01_id") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("table01_id"); CREATE INDEX "author_index" ON "public"."test_index_table01" ("author_id"); CREATE TABLE中存在多个唯一索引,DSC工具迁移时会根据GaussDB(DWS)的特性将所有唯一索引创建为普通索引。 输入示例 1 2 3 4 5 6 7 8 9 CREATE TABLE `public`.`test_index_table01` ( `TABLE01_ID` INT(11) NOT NULL, `TABLE01_THEME` VARCHAR(100) NULL DEFAULT NULL, `AUTHOR_NAME` CHAR(10) NULL DEFAULT NULL, `AUTHOR_ID` INT(11) NULL DEFAULT NULL, `CREATE_TIME` INT NULL DEFAULT NULL, UNIQUE(`TABLE01_ID`), UNIQUE(`AUTHOR_ID`) ); 输出示例 1 2 3 4 5 6 7 8 9 CREATE TABLE "public"."test_index_table01" ( "table01_id" INTEGER NOT NULL, "table01_theme" VARCHAR(400) DEFAULT NULL, "author_name" CHAR(40) DEFAULT NULL, "author_id" INTEGER DEFAULT NULL, "create_time" INTEGER DEFAULT NULL ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("table01_id"); CREATE INDEX "idx_test_index_table01_table01_id" ON "public"."test_index_table01"("TABLE01_ID"); CREATE INDEX "idx_test_index_table01_author_id" ON "public"."test_index_table01"("AUTHOR_ID"); CREATE TABLE中存在一个唯一索引,并不存在主键索引时,DSC工具迁移时会根据GaussDB(DWS)的特性保留该唯一索引。 输入示例 1 2 3 4 5 6 7 8 CREATE TABLE `public`.`test_index_table01` ( `TABLE01_ID` INT(11) NOT NULL, `TABLE01_THEME` VARCHAR(100) NULL DEFAULT NULL, `AUTHOR_NAME` CHAR(10) NULL DEFAULT NULL, `AUTHOR_ID` INT(11) NULL DEFAULT NULL, `CREATE_TIME` INT NULL DEFAULT NULL, UNIQUE(`AUTHOR_ID`) ); 输出示例 1 2 3 4 5 6 7 8 CREATE TABLE "public"."test_index_table01" ( "table01_id" INTEGER NOT NULL, "table01_theme" VARCHAR(400) DEFAULT NULL, "author_name" CHAR(40) DEFAULT NULL, "author_id" INTEGER DEFAULT NULL, "create_time" INTEGER DEFAULT NULL, UNIQUE ("author_id") ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("author_id"); CREATE TABLE中存在主键索引时,DSC工具迁移时会根据GaussDB(DWS)的特性将所有的唯一索引创建为普通索引。 输入示例 1 2 3 4 5 6 7 8 9 CREATE TABLE `public`.`test_index_table01` ( `TABLE01_ID` INT(11) NOT NULL, `TABLE01_THEME` VARCHAR(100) NULL DEFAULT NULL, `AUTHOR_NAME` CHAR(10) NULL DEFAULT NULL, `AUTHOR_ID` INT(11) NULL DEFAULT NULL, `CREATE_TIME` INT NULL DEFAULT NULL, PRIMARY KEY(`TABLE01_ID`), UNIQUE(`AUTHOR_ID`) ); 输出示例 1 2 3 4 5 6 7 8 9 CREATE TABLE "public"."test_index_table01" ( "table01_id" INTEGER NOT NULL, "table01_theme" VARCHAR(400) DEFAULT NULL, "author_name" CHAR(40) DEFAULT NULL, "author_id" INTEGER DEFAULT NULL, "create_time" INTEGER DEFAULT NULL, PRIMARY KEY ("table01_id") ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("table01_id"); CREATE INDEX "idx_test_index_table01_author_id" ON "public"."test_index_table01"("AUTHOR_ID"); 父主题: 索引
  • 使用方法 在HBase客户端执行以下命令可删除某个索引: hbase org.apache.hadoop.hbase.hindex.global.mapreduce.GlobalTableIndexer -Dtablename.to.index='table' -Dindexnames.to.drop='idx1#idx2' 相关参数介绍如下: tablename.to.index:表示需删除的索引所在的表名称。 indexnames.to.drop:表示需要删除的索引名称,可以同时指定多个,用#号分割。
  • 搜索表 在不使用索引的情况下也可以进行全文检索。 一个简单查询:将body字段中包含science的每一行打印出来。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 DROP SCHEMA IF EXISTS tsearch CASCADE; CREATE SCHEMA tsearch; CREATE TABLE tsearch.pgweb(id int, body text, title text, last_mod_date date); INSERT INTO tsearch.pgweb VALUES(1, 'Philology is the study of words, especially the history and development of the words in a particular language or group of languages.', 'Philology', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(2, 'Mathematics is the science that deals with the logic of shape, quantity and arrangement.', 'Mathematics', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(3, 'Computer science is the study of processes that interact with data and that can be represented as data in the form of programs.', 'Computer science', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(4, 'Chemistry is the scientific discipline involved with elements and compounds composed of atoms, molecules and ions.', 'Chemistry', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(5, 'Geography is a field of science devoted to the study of the lands, features, inhabitants, and phenomena of the Earth and planets.', 'Geography', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(6, 'History is a subject studied in schools, colleges, and universities that deals with events that have happened in the past.', 'History', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(7, 'Medical science is the science of dealing with the maintenance of health and the prevention and treatment of disease.', 'Medical science', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(8, 'Physics is one of the most fundamental scientific disciplines, and its main goal is to understand how the universe behaves.', 'Physics', '2010-1-1'); SELECT id, body, title FROM tsearch.pgweb WHERE to_tsvector('english', body) @@ to_tsquery('english', 'science'); id | body | title ----+-------------------------------------------------------------------------------------------------------------------------+--------- 2 | Mathematics is the science that deals with the logic of shape, quantity and arrangement. | Mathematics 3 | Computer science is the study of processes that interact with data and that can be represented as data in the form of programs. | Computer science 5 | Geography is a field of science devoted to the study of the lands, features, inhabitants, and phenomena of the Earth and planets. | Geography 7 | Medical science is the science of dealing with the maintenance of health and the prevention and treatment of disease. | Medical science (4 rows) 像science这样的相关词也会被找到,因为这些词都被处理成了相同标准的词条。 上面的查询指定english配置来解析和规范化字符串。也可以省略此配置,通过default_text_search_config进行配置设置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 SHOW default_text_search_config; default_text_search_config ---------------------------- pg_catalog.english (1 row) SELECT id, body, title FROM tsearch.pgweb WHERE to_tsvector(body) @@ to_tsquery('science'); id | body | title ----+-------------------------------------------------------------------------------------------------------------------------+--------- 2 | Mathematics is the science that deals with the logic of shape, quantity and arrangement. | Mathematics 3 | Computer science is the study of processes that interact with data and that can be represented as data in the form of programs. | Computer science 5 | Geography is a field of science devoted to the study of the lands, features, inhabitants, and phenomena of the Earth and planets. | Geography 7 | Medical science is the science of dealing with the maintenance of health and the prevention and treatment of disease. | Medical science (4 rows) 一个复杂查询:检索出在title或者body字段中包含treatment和science的最近10篇文档: 1 2 3 4 5 6 7 SELECT title FROM tsearch.pgweb WHERE to_tsvector(title || ' ' || body) @@ to_tsquery('treatment & science') ORDER BY last_mod_date DESC LIMIT 10; title -------- Medical science (1 rows) 为了清晰,举例中没有调用coalesce函数在两个字段中查找包含NULL的行。 以上例子均在没有索引的情况下进行查询。对于大多数应用程序来说,这个方法很慢。因此除了偶尔的特定搜索,文本搜索在实际使用中通常需要创建索引。 父主题: 表和索引
  • 操作步骤 登录KVS管理控制台。 在KVS管理控制台左侧导航栏选择“仓”,进入存储仓列表。 在仓列表中找到需要删除索引的表所在的仓,在仓对应的操作列,单击“创建表”,或者单击仓名称进入仓的详情页面,在“表信息”下单击“创建表”。 根据界面提示,选择计费模式、填写表详细信息或预置读/写吞吐量。 根据界面提示,配置“二级索引”。支持创建本地二级索引或全局二级索引。 单击“创建本地二级索引”,配置参数信息如表1所示。确认配置信息后单击“确定”。 图1 “创建本地二级索引”界面 表1 “创建本地二级索引”参数说明 类别 参数名称 描述 创建本地二级索引 名称 必选参数。 本地二级索引的名称。名称的长度范围为1-255个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”、“.”组成。名称不支持设置为“XPriIndex”。 排序键 必选参数。 排序键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。首字母不支持设置为“_”。 摘要字段 可选参数。 本地二级索引的摘要字段。支持创建多个摘要。摘要的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 单击“创建全局二级索引”,配置参数信息如表2所示。确认配置信息后单击“确定”。 图2 “创建全局二级索引”界面 表2 “创建全局二级索引”参数说明 类别 参数名称 描述 创建全局二级索引 名称 必选参数。 全局二级索引的名称。名称的长度范围为1-255个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”、“.”组成。名称不支持设置为“XPriIndex”。 分区键 必选参数。 分区键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 排序键 可选参数。 排序键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 读取吞吐量 输入范围:1-50000,单位:RCU。仅在预置计费模式下展示该字段并生效。 写入吞吐量 输入范围:1-50000,单位:WCU。仅在预置计费模式下展示该字段并生效。 摘要字段 可选参数。 全局二级索引的摘要字段。支持创建多个摘要。摘要的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。首字母不支持设置为“_”。 在“二级索引”区域,单击二级索引操作列的“删除”,即可删除已创建的本地二级索引或全局二级索引。 图3 删除索引
  • 响应示例 状态码: 200 成功响应示例 Http Status Code: 200 { "jobId": "f99f60f1-bba6-4cde-bd1a-ff4bdd1fd500000168232", "jobType": 8 } 状态码: 400 失败响应示例 Http Status Code: 400 { "errorMessage": "graph [demo] is not found", "errorCode": "GES.8603" }