云服务器内容精选

  • 卡片 卡片是指包裹图表组件的外层架构,可以理解为组件由卡片中基础元素(卡片标题、图表、卡片背景、卡片边框)和图表元素构成。 图3 卡片 背景 背景色:设置组件卡片的背景颜色。 边框:组件卡片边框设置,支持无边框、全边框和角边框三种样式。设置为全边框和角边框时,支持设置组件外圈边框的线型、圆角等。 样式:选择图片时,图片显示的样式,支持普通、居中、拉伸和平铺四种样式。 选择图片:使用本地的图片作为组件背景,支持新增目录和子目录,便于对图片进行分类管理。推荐使用JPG、JPEG、PNG或GIF格式的图片,且每张图片不能超过50MB。 特效:组件是否高亮显示,支持默认展示和跳转到页面时展示。 边距:组件中图表距离整个组件四边(上、下、左、右,如图2)的距离,默认为0,即铺满整个组件。
  • 配置 在配置中,设置组件的文本、段落和文本滚动方向。 图4 配置 文本设置 文本内容:请输入文本内容,您也可以从后台数据中获取文本内容,详情请参见从数据中获取文本内容。 字体:设置文本字体、大小和颜色等。 文本装饰:为文本添加下划线、删除线和上划线。 段落设置 内容对齐方式:文本内容为多行时,支持居中、左对齐、右对齐和两端对齐。 文本位置:文本内容为一行时,支持居中、左对齐和右对齐。 行高:设置行高。 文字间距:设置文字之间的间距。 首行缩进:文本首行是否缩进,设置为0,表示不缩进。 文本滚动 滚动显示:文本是否滚动显示。 滚动方式:设置文本滚动方式,支持向上滚动、向下滚动、向左滚动和向右滚动。 滚动速度:设置文本滚动速度。 问号提示 问号提示:是否显示问号提示。 提示文本:输入问号提示的文本内容。 问号大小:设置问号的大小。 问号颜色:设置问号的背景颜色。 气泡位置:设置提示气泡的显示位置,如右上方、正上方。 提示背景:设置提示气泡的背景颜色。 新增条件格式:单击“新增条件格式”,可设置条件和响应数据列的样式。如何新增条件格式,请参见新增条件格式。
  • 图形 图形是指组件中,实现 数据可视化 的具体图形表达元素,例如饼图的扇区、柱状图的柱子、折线图的线条、拐点等。 图6 图形 统一配置 对齐方式:设置组件的对齐方式,如水平居中、居左和居右。 字体:设置组件的字体、大小和颜色等。 评星大小:设置评星显示星星的大小号。 数据系列 原数据名:原始数据中默认的数据名,内容来源于数据模型的值。 宽度占比(%):设置列名的宽度占比。 显示方式:设置数据的显示方式,数据为图片地址时可以展示为图片。 对齐方式:设置数据的对齐方式。 字体:“显示方式”设置为“文字”时显示该参数,设置文字显示的字体、颜色等。 图宽占比(%):“显示方式”设置为“图片”时显示该参数,设置图形的宽度占比。 图高占比(%):“显示方式”设置为“图片”时显示该参数,设置图形的高度占比。 最大分值:“显示方式”设置为“评星”时显示该参数,设置5颗星的最大分值 。 评星固定为五颗星,当数据的最大值不等于5时,需填写数据的最大分值。 显示星数=实际数值/评分最大分值x5颗星。 当数据超过最大值的时候,显示5颗星。 默认颜色:“显示方式”设置为“评星”时显示该参数,设置5颗星中不显示星星的颜色。 选中颜色:“显示方式”设置为“评星”时显示该参数,设置5颗星中显示星星的颜色。 半星:“显示方式”设置为“评星”时显示该参数,设置是否显示半星。 图7 半星评分
  • 卡片 卡片是指包裹图表组件的外层架构,可以理解为组件由卡片中基础元素(卡片标题、图表、卡片背景、卡片边框)和图表元素构成。 图3 卡片 背景 背景色:设置组件卡片的背景颜色。 边框:组件卡片边框设置,支持无边框、全边框和角边框三种样式。设置为全边框和角边框时,支持设置组件外圈边框的线型、圆角等。 样式:选择图片时,图片显示的样式,支持普通、居中、拉伸和平铺四种样式。 选择图片:使用本地的图片作为组件背景,支持新增目录和子目录,便于对图片进行分类管理。推荐使用JPG、JPEG、PNG或GIF格式的图片,且每张图片不能超过50MB。 特效:组件是否高亮显示,支持默认展示和跳转到页面时展示。 边距:组件中图表距离整个组件四边(上、下、左、右)的距离(参见图2),默认为0,即铺满整个组件。 标题设置 是否展示:是否展示标题。 标题内容:设置标题的显示内容。 标题行高度:设置标题的行高,单位px。 背景色:设置标题背景的颜色。 文本位置:设置标题文本位置。 字体:设置标题的字体、大小和颜色等。
  • 配置 在配置中,设置组件的全局样式、表头、行和序列号。 图4 配置 全局样式 排行榜行数:设置排行榜的行数。 背景色:设置排行榜背景的颜色。 自动轮播:是否开启自动轮播功能。开启后,支持设置轮播速度和单行停顿时间。 表头设置 显示表头:是否显示表头。 表头行高占比(%):设置表头的行高占比。 背景色:设置表头的背景颜色。 对齐方式:设置表头的对齐方式,如水平居中、居左和居右。 表头字体:设置表头的字体、颜色和大小等。 行配置 换行显示:是否开启换行显示。 行背景色:设置行的背景颜色,支持设置奇数、偶数行背景颜色和自定义行背景颜色。 行背景色设置为“自定义”时,背景色序列号配置规则如下: 单行生效:直接配置对应序号。 非连续性多行生效:使用中文逗号“,”或英文逗号“,”,分隔对应序号。 连续多行生效:使用横线“-”,连接首尾序号。 序列号 显示序列号:是否显示序列号。 宽度占比(%):设置序列号的宽度占比。 序列号样式:设置序列号的样式。 对齐方式:设置序列号的对齐方式。 字体:设置序列号的字体、颜色和大小等。 背景样式:设置序列号的背景样式,如颜色、图片。设置为“颜色”时,可选择背景样式,如圆形、椭圆和矩形。 背景色:自定义背景的颜色。“背景样式”设置为“颜色”时,才会显示该参数。 填充方式:设置背景图片的填充方式,如拉伸、居中等。“背景样式”设置为“图片”时,才会显示该参数。 图片:推荐使用JPG、JPEG、PNG和GIF格式的图片,且图片大小不超过500MB。“背景样式”设置为“图片”时,才会显示该参数。 背景宽度(%):设置序列号背景的宽度占比。 背景高度(%):设置序列号背景的高度占比。 特殊序列号:是否显示特殊序列号。设置为“显示”时,支持设置特殊序列号的字体、特殊样式和背景色。 字体:设置特殊序列号的字体、颜色和大小等。 特殊样式:设置特殊序列号的样式,支持设置为颜色或图片。 填充方式:设置图片的填充方式,如拉伸、居中、普通和平铺。“特殊样式”设置为“图片”时,才显示该参数。 图片:设置特殊样式的背景图片,支持从本地或连接器中选择图片。推荐使用JPG、JPEG、PNG和GIF格式的图片,每张图片的大小不能超过50MB。“特殊样式”设置为“图片”时,才显示该参数。 圆角:设置矩形的边框圆角,设置为0时为直角,设置为100时显示为圆形。“特殊样式”设置为“颜色”,且选择“矩形”时,才显示该参数。 背景色:设置特殊样式的背景颜色,支持设置为圆形和矩形。“特殊样式”设置为“颜色”时,才显示该参数。
  • 分词器测试 函数ts_debug允许简单测试文本搜索分词器。 1 2 3 4 5 6 7 8 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[], OUT dictionary regdictionary, OUT lexemes text[]) returns setof record ts_debug显示document的每个token信息,token是由解析器生成,由指定的词典进行处理。如果忽略对应参数,则使用config指定的分词器或者default_text_search_config指定的分词器。 ts_debug为文本解析器标识的每个token返回一行记录。记录中的列分别是: alias:text类型,token的别名。 description:text类型,token的描述。 token:text类型,token的文本内容。 dictionaries:regdictionary数组类型,是分词器为token选定的词典。 dictionary:regdictionary类型,用来识别token的词典。如果为空,则不做识别。 lexemes:text数组类型,词典识别token时生成的词素。如果为空,则不生成词素。空数组({})意味着token将被识别成停用词。 一个简单的例子: 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 openGauss=# SELECT * FROM ts_debug('english','a fat cat sat on a mat - it ate a fat rats'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+----------------+--------------+--------- asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | cat | {english_stem} | english_stem | {cat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | sat | {english_stem} | english_stem | {sat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | on | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | mat | {english_stem} | english_stem | {mat} blank | Space symbols | | {} | | blank | Space symbols | - | {} | | asciiword | Word, all ASCII | it | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | ate | {english_stem} | english_stem | {ate} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | rats | {english_stem} | english_stem | {rat} (24 rows) 父主题: 测试和调试文本搜索
  • 解析文档 GaussDB 中提供了to_tsvector函数把文档处理成tsvector数据类型。 1 to_tsvector([ config regconfig, ] document text) returns tsvector to_tsvector将文本文档解析为token,再将token简化到词素,并返回一个tsvector。其中tsvector中列出了词素及它们在文档中的位置。文档是根据指定的或默认的文本搜索分词器进行处理的。这里有一个简单的例子: 1 2 3 4 openGauss=# SELECT to_tsvector('english', 'a fat cat sat on a mat - it ate a fat rats'); to_tsvector ----------------------------------------------------- 'ate':9 'cat':3 'fat':2,11 'mat':7 'rat':12 'sat':4 通过以上例子可发现结果tsvector不包含词a、on或者it,rats变成rat,并且忽略标点符号-。 to_tsvector函数内部调用一个解析器,将文档的文本分解成token并给每个token指定一个类型。对于每个token,有一系列词典可供查询。词典系列因token类型的不同而不同。识别token的第一本词典将发出一个或多个标准词素来表示token。例如: rats变成rat因为词典认为词rats是rat的复数形式。 有些词被作为停用词(请参考停用词),这样它们就会被忽略,因为它们出现得太过频繁以致于搜索中没有用处。比如例子中的a、on和it。 如果没有词典识别token,那么它也被忽略。在这个例子中,符号“-”被忽略,因为词典没有给它分配token类型(空间符号),即空间符号永远不会被索引。 语法解析器、词典和要索引的token类型由选定的文本搜索分词器决定。可以在同一个数据库中有多种不同的分词器,以及提供各种语言的预定义分词器。在以上例子中,使用缺省分词器english。 函数setweight可以给tsvector的记录加权重,权重是字母A、B、C、D之一。这通常用于标记来自文档不同部分的记录,比如标题、正文。之后,这些信息可以用于排序搜索结果。 因为to_tsvector(NULL)会返回空,当字段可能是空的时候,建议使用coalesce。以下是推荐的为结构化文档创建tsvector的方法: 1 2 3 4 5 6 7 8 9 10 openGauss=# CREATE TABLE tsearch.tt (id int, title text, keyword text, abstract text, body text, ti tsvector); openGauss=# INSERT INTO tsearch.tt(id, title, keyword, abstract, body) VALUES (1, 'China', 'Beijing', 'China','China, officially the People''s Republic of China (PRC), located in Asia, is the world''s most populous state.'); openGauss=# UPDATE tsearch.tt SET ti = setweight(to_tsvector(coalesce(title,'')), 'A') || setweight(to_tsvector(coalesce(keyword,'')), 'B') || setweight(to_tsvector(coalesce(abstract,'')), 'C') || setweight(to_tsvector(coalesce(body,'')), 'D'); openGauss=# DROP TABLE tsearch.tt; 上例使用setweight标记已完成的tsvector中的每个词的来源,并且使用tsvector连接操作符||合并标记过的tsvector值,处理tsvector一节详细介绍了这些操作。 父主题: 控制文本搜索
  • 分词器测试 函数ts_debug允许简单测试文本搜索分词器。 1 2 3 4 5 6 7 8 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[], OUT dictionary regdictionary, OUT lexemes text[]) returns setof record ts_debug显示document的每个token信息,token是由解析器生成,由指定的词典进行处理。如果忽略对应参数,则使用config指定的分词器或者default_text_search_config指定的分词器。 ts_debug为文本解析器标识的每个token返回一行记录。记录中的列分别是: alias:text类型,token的别名。 description:text类型,token的描述。 token:text类型,token的文本内容。 dictionaries:regdictionary数组类型,是分词器为token选定的词典。 dictionary:regdictionary类型,用来识别token的词典。如果为空,则不做识别。 lexemes:text数组类型,词典识别token时生成的词素。如果为空,则不生成词素。空数组({})意味着token将被识别成停用词。 一个简单的例子: 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 openGauss=# SELECT * FROM ts_debug('english','a fat cat sat on a mat - it ate a fat rats'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+----------------+--------------+--------- asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | cat | {english_stem} | english_stem | {cat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | sat | {english_stem} | english_stem | {sat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | on | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | mat | {english_stem} | english_stem | {mat} blank | Space symbols | | {} | | blank | Space symbols | - | {} | | asciiword | Word, all ASCII | it | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | ate | {english_stem} | english_stem | {ate} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | rats | {english_stem} | english_stem | {rat} (24 rows) 父主题: 测试和调试文本搜索
  • 解析文档 GaussDB中提供了to_tsvector函数把文档处理成tsvector数据类型。 1 to_tsvector([ config regconfig, ] document text) returns tsvector to_tsvector将文本文档解析为token,再将token简化到词素,并返回一个tsvector。其中tsvector中列出了词素及它们在文档中的位置。文档是根据指定的或默认的文本搜索分词器进行处理的。这里有一个简单的例子: 1 2 3 4 openGauss=# SELECT to_tsvector('english', 'a fat cat sat on a mat - it ate a fat rats'); to_tsvector ----------------------------------------------------- 'ate':9 'cat':3 'fat':2,11 'mat':7 'rat':12 'sat':4 通过以上例子可发现结果tsvector不包含词a、on或者it,rats变成rat,并且忽略标点符号-。 to_tsvector函数内部调用一个解析器,将文档的文本分解成token并给每个token指定一个类型。对于每个token,有一系列词典可供查询。词典系列因token类型的不同而不同。识别token的第一本词典将发出一个或多个标准词素来表示token。例如: rats变成rat因为词典认为词rats是rat的复数形式。 有些词被作为停用词(请参考停用词),这样它们就会被忽略,因为它们出现得太过频繁以致于搜索中没有用处。比如例子中的a、on和it。 如果没有词典识别token,那么它也被忽略。在这个例子中,符号“-”被忽略,因为词典没有给它分配token类型(空间符号),即空间符号永远不会被索引。 语法解析器、词典和要索引的token类型由选定的文本搜索分词器决定。可以在同一个数据库中有多种不同的分词器,以及提供各种语言的预定义分词器。在以上例子中,使用缺省分词器english。 函数setweight可以给tsvector的记录加权重,权重是字母A、B、C、D之一。这通常用于标记来自文档不同部分的记录,比如标题、正文。之后,这些信息可以用于排序搜索结果。 因为to_tsvector(NULL)会返回空,当字段可能是空的时候,建议使用coalesce。以下是推荐的为结构化文档创建tsvector的方法: 1 2 3 4 5 6 7 8 9 10 openGauss=# CREATE TABLE tsearch.tt (id int, title text, keyword text, abstract text, body text, ti tsvector); openGauss=# INSERT INTO tsearch.tt(id, title, keyword, abstract, body) VALUES (1, 'China', 'Beijing', 'China','China, officially the People''s Republic of China (PRC), located in Asia, is the world''s most populous state.'); openGauss=# UPDATE tsearch.tt SET ti = setweight(to_tsvector(coalesce(title,'')), 'A') || setweight(to_tsvector(coalesce(keyword,'')), 'B') || setweight(to_tsvector(coalesce(abstract,'')), 'C') || setweight(to_tsvector(coalesce(body,'')), 'D'); openGauss=# DROP TABLE tsearch.tt; 上例使用setweight标记已完成的tsvector中的每个词的来源,并且使用tsvector连接操作符||合并标记过的tsvector值,处理tsvector一节详细介绍了这些操作。 父主题: 控制文本搜索
  • 文本类型与说明 表1 文本类型说明 类型 说明 数据要素 标题 和其他组件结合使用,作为组件的标题。 无 文本 由文本组成,用于对组件内容进行描述。 文本 词云 词云由词汇组成类似云的彩色图形,用于展示大量文本数据。 类别轴/维度 时间器 时间器接入标准时间,用于展示当前时间。 无 表格轮播 通过表格轮播的形式展示数据。 表格列/维度或度量 表格 通过表格形式展示数据。 表格列/维度或度量 数字翻牌器 数字翻牌器支持自定义翻牌器的标题、数字、前缀、后缀等样式,通常与其他组件配合使用,通过交互功能在可视化应用中展示实时数据的变化情况。 数值/度量 阈值翻牌器 阈值翻牌器支持自定义翻牌器的阈值、标题、数字、前缀、后缀等样式,通常与其他组件配合使用,通过交互功能在可视化应用中展示实时数据的变化情况。 数值/度量 跑马灯 跑马灯支持自定义文本的内容、颜色、动画效果等,能够将组件中的溢出文本以跑马灯动画的形式展示在可视化应用中。 文本 轮播列表柱状图 轮播列表柱状图是表格组件的一种,支持根据数值大小映射柱子的长度,支持以跑马灯动画的形式展示溢出文本,能够以轮播列表柱图的形式在可视化应用中直观地展示多行、多页的文本内容。 类别轴/维度和轴值/度量 矩形树图 矩形树图适合展现具有层级关系的数据,能够直观体现同级之间的比较,相比起传统的树形结构图,矩形树图能更有效得利用空间,并且拥有展示占比的功能。 色块标签/维度和色块大小/度量
  • || 描述:将两个tsquery类型的词汇进行“或”操作 示例: 1 2 3 4 5 6 7 8 9 10 SELECT 'fat | rat'::tsquery || 'cat'::tsquery AS RESULT; result --------------------------- ( 'fat' | 'rat' ) | 'cat' (1 row) SELECT 'a:1 b:2'::tsvector || 'c:1 d:2 b:3'::tsvector AS RESULT; result --------------------------- 'a':1 'b':2,5 'c':3 'd':4 (1 row)
  • 分词器测试 函数ts_debug允许简单测试文本搜索分词器。 1 2 3 4 5 6 7 8 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[], OUT dictionary regdictionary, OUT lexemes text[]) returns setof record ts_debug显示document的每个token信息,token是由解析器生成,由指定的词典进行处理。如果忽略对应参数,则使用config指定的分词器或者default_text_search_config指定的分词器。 ts_debug为文本解析器标识的每个token返回一行记录。记录中的列分别是: alias:text类型,token的别名。 description:text类型,token的描述。 token:text类型,token的文本内容。 dictionaries:regdictionary数组类型,是分词器为token选定的词典。 dictionary:regdictionary类型,用来识别token的词典。如果为空,则不做识别。 lexemes:text数组类型,词典识别token时生成的词素。如果为空,则不生成词素。空数组({})意味着token将被识别成停用词。 一个简单的例子: 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 SELECT * FROM ts_debug('english','a fat cat sat on a mat - it ate a fat rats'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+----------------+--------------+--------- asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | cat | {english_stem} | english_stem | {cat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | sat | {english_stem} | english_stem | {sat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | on | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | mat | {english_stem} | english_stem | {mat} blank | Space symbols | | {} | | blank | Space symbols | - | {} | | asciiword | Word, all ASCII | it | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | ate | {english_stem} | english_stem | {ate} blank | Space symbols | | {} | | asciiword | Word, all ASCII | a | {english_stem} | english_stem | {} blank | Space symbols | | {} | | asciiword | Word, all ASCII | fat | {english_stem} | english_stem | {fat} blank | Space symbols | | {} | | asciiword | Word, all ASCII | rats | {english_stem} | english_stem | {rat} (24 rows) 父主题: 测试和调试文本搜索
  • 解析文档 GaussDB(DWS)中提供了to_tsvector函数把文档处理成tsvector数据类型。 1 to_tsvector([ config regconfig, ] document text) returns tsvector to_tsvector将文本文档解析为token,再将token简化到词素,并返回一个tsvector。其中tsvector中列出了词素及它们在文档中的位置。文档是根据指定的或默认的文本搜索分词器进行处理的。这里有一个简单的例子: 1 2 3 4 SELECT to_tsvector('english', 'a fat cat sat on a mat - it ate a fat rats'); to_tsvector ----------------------------------------------------- 'ate':9 'cat':3 'fat':2,11 'mat':7 'rat':12 'sat':4 通过以上例子可发现结果tsvector不包含词a、on或者it,rats变成rat,并且忽略标点符号-。 to_tsvector函数内部调用一个解析器,将文档的文本分解成token并给每个token指定一个类型。对于每个token,有一系列词典可供查询。词典系列因token类型的不同而不同。识别token的第一本词典将发出一个或多个标准词素来表示token。例如: rats变成rat因为词典认为词rats是rat的复数形式。 有些词被作为停用词(请参考停用词),这样它们就会被忽略,因为它们出现得太过频繁以致于搜索中没有用处。比如例子中的a、on和it。 如果没有词典识别token,那么它也被忽略。在这个例子中,符号“-”被忽略,因为词典没有给它分配token类型(空间符号),即空间符号永远不会被索引。 语法解析器、词典和要索引的token类型由选定的文本搜索分词器决定。可以在同一个数据库中有多种不同的分词器,以及提供各种语言的预定义分词器。在以上例子中,使用缺省分词器english。 函数setweight可以给tsvector的记录加权重,权重是字母A、B、C、D之一。这通常用于标记来自文档不同部分的记录,比如标题、正文。之后,这些信息可以用于排序搜索结果。 因为to_tsvector(NULL)会返回空,当字段可能是空的时候,建议使用coalesce。以下是推荐的为结构化文档创建tsvector的方法: 1 2 3 4 5 6 7 8 9 10 CREATE TABLE tsearch.tt (id int, title text, keyword text, abstract text, body text, ti tsvector); INSERT INTO tsearch.tt(id, title, keyword, abstract, body) VALUES (1, 'book', 'literature', 'Ancient poetry','Tang poem Song jambic verse'); UPDATE tsearch.tt SET ti = setweight(to_tsvector(coalesce(title,'')), 'A') || setweight(to_tsvector(coalesce(keyword,'')), 'B') || setweight(to_tsvector(coalesce(abstract,'')), 'C') || setweight(to_tsvector(coalesce(body,'')), 'D'); DROP TABLE tsearch.tt; 上例使用setweight标记已完成的tsvector中的每个词的来源,并且使用tsvector连接操作符||合并标记过的tsvector值,处理tsvector一节详细介绍了这些操作。 父主题: 控制文本搜索
  • 常用方案比较 字符串动态键值对提取分为关键字提取、值提取、关键字加工和值加工,常用方案为采用e_kv函数、e_kv_delimit函数和e_regex函数等。不同提取场景的三种方案如下: 方案 关键字提取 值提取 关键字加工 值加工 e_kv 使用特定正则表达式 支持默认的字符集、特定分隔符或者带(、)或(")分隔 支持前后缀 支持文本escape e_kv_delimit 使用特定正则表达式 使用分隔符 支持前后缀 默认无 e_regex 组合自定义正则表达式和默认字符集过滤 完全自定义 自定义 自定义 大部分键值对的提取使用e_kv函数并配置特定参数就可以很好地满足,尤其是带括字符和反斜杠需要提取并转义时。其他复杂或高级的场景可以用e_regex函数来提取。部分特定场景下的键值对使用e_kv_delimit函数会更简单。
  • 值提取 动态键值对之间以及关键字与值之间有明确标识,如a=b或a="cxxx"日志格式的,推荐用e_kv函数,示例如下。 原始日志 { "content":"k=\"helloworld\",the change world, k2=\"good\"" } 加工规则 这种情况下使用e_kv函数,提取内容不包括the change world: e_kv("content") # e_regex函数写法 e_regex("content",r"(\w+)=\"(\w+)",{r"\1": r"\2"}) 加工结果:提取后的日志为: { "k2": "good", "k": "helloworld", "content": "k=\"helloworld\",the change world, k2=\"good\"" } 对带"的日志格式content:k1="v1=1"&k2=v2?k3=v3,推荐使用e_kv函数进行提取,例如: 原始日志 { "content":"k1=\"v1=1\"&k2=v2?k3=v3" } 加工规则 e_kv("content",sep="=", quote="'") 加工结果 处理后日志为: { "k1": "v1=1", "k2": "v2", "k3": "v3", "content": "k1=\"v1=1\"&k2=v2?k3=v3" }