单击快速创建,选择搜索增强,进入服务创建界面,编辑服务名称并选择服务所使用的引擎及数据源,完成创建后进入索引配置界面。
提供检索服务的基础组建,可在资源中心进行引擎管理也可在快速创建页面直接选择或添加。更多信息可查看引擎管理操作指南。
企业知识库存储,可在资源中心进行数据源管理也可在快速创建页面直接选择或添加。更多信息可查看数据源管理操作指南。
企业知识库当前所选数据源存储地址,系统读取所选数据源下的目录文件/库表,支持按子路径选择目录文件及其子目录/库表。
系统离线解析数据源字段,用于构建索引。
勾选使用该字段,对勾选的字段将入库构建索引,不同的字段类型在搜索过程中参与到召回、排序的链路中,在查询结果中可以展示。未勾选字段将不会构建索引。
字段名称, 对采用oss文件格式作为数据源的实例,字段名称跟离线数据解析结果字段对应,离线解析结果默认的字段名称包括如下:
对采用数据表作为数据源的实例,字段名和表格字段名一一对应。字段名不允许带有'_'前缀。
索引字段类型定义了字段的数据类型,以便搜索引擎(例如ElasticSearch)能够正确地处理和索引这些字段的值。以ElasticSearch为例,常见的索引字段类型:
目前可选的索引字段类型包括:
在搜索增强场景中,字段勾选文本切分chunk, 那么会对改字段进行进一步的切分以满足下游任务使用的要求, 针对不同的数据源、使用场景,文本切分chunk的勾选建议:
在索引构建过程中,分析器(OR 分词器)是用于将文本数据分割成词的工具。它是文本分析过程中的一个重要组件,用于构建倒排索引,以便能够对文本进行搜索和匹配。
分析器将输入的文本按照一定的规则进行分割,分析器可以将一个长文本分割成多个独立的单字或者词汇片段,以便能够对这些片段进行索引和搜索。
企业搜索提供多种内置的分析器,包括:
阿里分析器
介绍:阿里巴巴开发的中英文分词工具
分词样例
Ik分析器
介绍: 开源Ik分词器, 分词效果跟阿里分析器类似
单字分析器:
介绍: 按照单个字符(UTF8编码)进行分割,适用于语义检索要求不高、要求高召回的检索场景
分词样例:
拼音分析器
介绍: 针对中文字段进行拼音解析、使用于拼音检索场景
分词样例:
Ngram分析器:
介绍: 按照N-gram字符(UTF8编码)进行分割, N默认值为3
分词样例:
通过选择合适的分析器,可以使得搜索引擎在索引和搜索文本数据时更准确和灵活。
通过增加特征因子,引入对应增强算法,提升搜索效果和效率。特征因子包括如下:
特征因子1,分词:
名词解释:将连续的字序列按照一定的规范重新组合成语义独立词序列的过程。
功能说明;对带构建索引的文本进行中文分词处理。
示例:
输入文本:“一条黄色的裙子”,分词后结果:["一条", "黄色", "的", "裙子"]
特征因子2,term权重:
名词解释:将输入的文本分词后的结果做每个term的重要性打分。
功能说明;对带构建索引的文本进行中文term权重预测。
示例:
输入文本:“一条黄色的裙子”
term权重:[0.44163678889106406, 0.6124273381472254, 0.07400746404941613, 1.0]
tips:term权重输出长度和分词结果的长度一致。
特征因子3,实体识别:
名词解释:指识别文本中具有特定意义的实体,包括人名、地名、机构名、专有名词等,以及时间、数量等文字。
功能说明:对带构建索引的文本进行实体识别。
示例:
输入文本:“一条黄色的裙子”
分词后结果:{"mention": "黄色", "type": "颜色", "score": 1.0},
{"mention": "裙子", "type": "品类", "score": 1.0},
tips:mention表示实体词,type表示实体类比,score为模型的置信度打分。
文本向量化是将文本数据转换为数值向量的过程。它将文本中的词语、句子表示为向量形式,以便能够信息检索等任务中进行相关性计算。
文本向量化实例:
注意:
1、向量化后为一个浮点数列表,列表长度取决于向量化模型的输出维度;
2、在索引构建阶段, 向量化只对TEXT类型字段生效;
3、如果选择多个TEXT字段向量化,算法模型将自动将多个字段拼接计算向量结果。
当接入数据源同时存在文件类型及数据库类型数据时,且“文件路径字段”和“文件类型字段”都是数据库中的字段,需要开启“关联文件数据”功能,可以参考最佳实践说明。开启后,系统会自动校验,若源数据表中字段和系统自动扩展字段中的“title、content、parent、hier_title、nid”有重复,则需退出流程,更改字段名称。
文件存储类型
现支持OSS和HTTP两类数据。
文件路径字段
此字段用于获取存在oss中文件路径数据,字段需为keyword/text字段。
文件类型字段
此字段用于获取存在oss中文件类型数据,字段需为keyword/text字段,文件类型当前支持 .pdf/.docx/.txt/.md/.html。
系统自动扩展字段
系统自动扩展字段固定为“title、content、parent、hier_title、nid”。
支持配置chunk参数,“chunk size指定”范围值在50以上,“chunk overlap指定”范围值需小于chunk size指定数值,可以等于0。
全文检索字段,需要为keywords或text类型,用来执行搜索操作,匹配查询条件,限制搜索范围。
接口返回字段是指搜索请求后的返回结果字段,可在索引配置字段中选择业务所需字段,此字段会在开放接口openapi中的fields字段返回。后续可应用于大模型多轮对话中的参考内容。
若数据源索引配置需要定期更新,则需要打开此开关。支持每小时/每天/每月三种周期自动更新,支持配置对应更新的时间点以及时区。
在完成创建与配置流程后,进行配置加载,此期间您可以离开当前页面进行其他操作,不会影响服务构建和数据导入工作完成。
服务测试搜索入参支持两种方式:
JSON配置:搜索输入以json格式输入,搜索参数可以参考。
高级参数配置:服务测试界面设置高级参数配置,选择“添加配置参数”,并选择相应参数进行配置,点击“保存”后参数配置生效。
下面是一个常用的搜索输入示例以及对应解释
名词解释:召回模型主要包括文本相关性召回和语义向量召回。其中文本相关性召回是从文本分词后的词粒度的一致性上做文档召回,语义向量召回是指将文本转为语义向量后在向量空间里的寻找空间距离最靠近的文档作为召回。
推荐值:目前建议50%,表示文本召回和语义向量召回的文档数各占总召回数量的一半。
功能描述:控制query召回时向量召回部分占所有召回数量的比例。
tips:若希望不使用向量召回(仅用文本相关性召回)设置为0%,当前版本不支持仅向量召回(不建议设置成100%)。
名词解释:进入精排计算的最大文档数量。
推荐值:200-500。
功能描述:query在召回所有相关文本后,会基于召回的结果做一个基础的相关性打分并排序,当召回的文档数目总数大于当前设置的精排DOC数量N时,会取基础相关性打分最高的TOP N进入精排计算。
tips:该数字越大表示用于精排的文档数越多,对于最终效果会更好,但精排计算所消耗时间会更长。
名词解释:搜索条件和文本的匹配程度
推荐值:80%,数值类型为百分比,取值范围为0至100%。
功能描述:非全匹配模式下,控制匹配文本的相似度。若匹配度为0.8,则表示文本80%的内容同搜索条件相匹配。若匹配程度小于设置值,则此文本不作为参考文本。
名词解释:排序分数阈值
推荐值:0
功能描述:用于过滤低相关性分档,所有文档排序后,排序分数低于该分数的文档不会返回。
名词解释:产品提供了丰富的排序特征供用户根据实际情况实现自定义排序。排序公式为json格式,配置在rankModelInfo中。内置的排序模型将会根据rankModelInfo指定的排序公式对召回结果根据排序特征进行打分,并计算最终的排序分数以及排序结果。内置的排序模块提供了多种排序特征,并且支持对每个特征配置对应索引字段,权重,阈值,以及是否归一化等。
rankModelInfo
自定义排序公式配置字段,包含对原始query以及extra query的排序公式,每类排序公式为dict类型,dict名称为对应的查询字段名称。(默认query(uq)的排序公式类型名为“default",额外的查询排序公式类型名为其对应的在"extras"字段对应的查询名称)。
排序公式
每类排序公式的具体内容包含 "features" 以及 "aggregate_algo"两部分。“features” 为具体排序特征及其参数的列表。 "aggregate_algo"目前仅支持“weight_avg",即对所有特征加权求和。 此加权求和结果即为“精排分数。
特征
每一项特征为dict格式,包含特征名称以及特征参数。特征通用参数如下:
特征通用参数
name: 特征名
field: 计算相关性特征的索引字段。
weights: 特征权重,为float类型。
threshold: 特征分数阈值,float类型。低于阈值的特征分数将被置为0(注意:threshold过滤值为normalize前分数)。设置阈值目的是为了过滤小匹配度特征分对结果的影响,强化高匹配度特征,通过自定义设定实现对特征有效筛选。
norm: 是否将特征进行归一化bool类型。归一化是指通过特定的转换方法将原始排序特征分数调整到一个统一的规模(0-1之间)。其主要目的是消除不同特征之间的量纲差异,使得不同特征分数具有可比性。
norm_factor:float类型,归一化系数,用于适配原始分数(建议设置为原始分布的均值(不能为0))。
具体每项特征具体说明如下:
特征说明:
自定义排序最佳实践
Tips:以下例子均假设在索引中存在名为"content"的字段。
本例子展示了一个带额外查询“keyword”的排序公式,用户需要在"extras"字段内配置与特征字段名相同的查询字段(本例中为“keyword")