为搜索服务定义配置索引规则
索引是搜索服务的核心引擎,决定了数据如何被存储、分词及检索。在设备资产检索、质量追溯、物料查询等场景中,只有正确配置索引,系统才能对分散在不同模型中的数据进行高效检索。
不同索引类型与分词策略将直接影响搜索的召回率(系统找到相关数据的能力)与准确率(返回结果与查询意图的相关性)。
典型业务配置示例:
| 业务场景 | 字段示例 | 推荐配置 | 配置目的 |
|---|---|---|---|
| 唯一标识精准定位 | 设备编码 | 文本索引 + 不分词 + 精确匹配 | 确保唯一编码的精准定位。 |
| 文本内容模糊查询 | 故障描述 | 文本索引 + 普通分词 + 模糊匹配 | 提升故障关键词的召回能力。 |
| 时间范围筛选 | 投产日期 | 日期索引 + 范围匹配 | 支持按时间区间(如2025-01-01至2025-12-31)筛选台账。 |
约束与限制
- JSON索引限制
- 不支持全局关键词搜索:JSON类型字段无法响应全局搜索框输入,必须通过指定路径或过滤条件进行查询。
- 数组扁平化处理:JSON数组对象在底层被扁平化存储,不支持跨对象元素的强关联查询。例如:查询“array.name=A AND array.age=18”时,如果A和18分别属于数组中的不同元素,可能会产生误命中。
- 分类属性使用JSON索引的限制
- 数值查询:
- 浮点型数据必须按属性标度补齐精度。例如:标度为4的属性,输入2.5需格式化为2.5000,否则可能导致匹配失败。
- 不支持范围查询。
- 日期范围:
- 必须使用13位毫秒级时间戳。
- 如原字段使用“单字分词”,则该字段不支持范围查询,需使用“.keyword”后缀字段进行范围查询。
- 数值查询:
在“索引定义”添加索引
- 在左侧导航栏中,选择,进入“搜索服务定义”页面。
- 找到目标搜索服务定义,单击
,进入编辑页面。 如果目标搜索服务定义的“状态”为“已发布”,需先单击
,并在弹出的窗口中单击“确定”,进入修订状态后才能编辑。 - 切换至“索引定义”页签,单击“添加索引”,列表将自动新增一行空白索引。 图1 添加索引
- 参照如下参数说明,结合业务数据类型,逐项完成索引全参数配置。
表1 添加索引的配置信息 参数名称
参数说明
索引名称
索引的唯一标识名称。
约束限制:
不能包含特殊字符,长度不能超过255个字符。
索引描述
对索引用途或内容的简要说明。
约束限制:
长度不超过255个字符。
索引类型
根据数据特征与检索需求选择:文本、日期、浮点型、长整型、联合索引、JSON。
运算符
定义联合索引中各子字段的逻辑关系。
- 与:AND,结果需同时满足所有子字段条件。
- 或:OR,结果满足任意一个子字段条件即可。
约束限制:
仅当“索引类型”选择“联合索引”时必填,其他类型置灰不可编辑。
分隔符
用于区分联合索引中不同字段值或关键词的分隔符号,默认值:“/”。
常见分隔符:空格、制表符、逗号、分号、竖线等。
约束限制:
- 仅当“索引类型”为“联合索引”时选填,其他类型置灰不可编辑。
- 如未手动设置,系统默认使用“/”进行分隔。请确保输入数据中的分隔符与此处设置一致,否则可能影响解析效果。
分词方法
用于定义系统对字段内容的切词策略。支持:不分词、普通分词、英文普通分词、最全分词、单字分词、分隔符分词。
约束限制:
仅当“索引类型”为“文本”、“联合索引”或“JSON”时必填,其他类型置灰不可编辑。
分词选项
分词方法的附加处理策略。
根据所选的“分词方法”动态展示,详细说明请参见分词选项说明。
作为过滤条件
设置是否将该索引字段用作搜索结果的筛选条件。
- Y:系统将根据该字段的值对搜索结果进行过滤。
- N:不作为过滤条件。
参与关键词搜索
设置字段是否纳入全局关键词搜索范围。
- Y:用户输入的关键词会在此字段中检索。
- N:不参与全局关键词搜索。
约束限制:
当“索引类型”选择“JSON”时,只能为“N”,且置灰不可修改。
展示
设置是否在API响应结果中返回该字段值。- Y:API出参中包含此字段。
- N:API出参中隐藏此字段。
匹配方法
设置索引的具体匹配逻辑。支持:精确匹配、模糊匹配、范围匹配、短语匹配。
不同索引类型对匹配方法的支持存在差异,详情说明请参见匹配方法支持矩阵。
约束限制:
仅当“作为过滤条件”与“参与关键词搜索”至少有一项选择“Y”时必填,否则置灰且不可修改。
- 完成所有配置后,单击底部“当前页签”中的“保存”。
索引类型参考表
xDM-F提供以下索引类型,全面适配不同的工业数据特征:
| 索引类型 | 数据特征 | 典型应用场景 | 说明 |
|---|---|---|---|
| 文本 | 字符串 | 设备名称、故障描述、工艺说明、物料规格、供应商名称 | 适用于字符型内容的检索与匹配。 |
| 日期 | 日期/时间 | 投产日期、维修时间、质检日期、计划完工日期 | 支持时间区间筛选与排序。 |
| 浮点型 | 带小数的数值 | 温度、压力、转速、尺寸公差、能耗指标、额定功率 | 支持数值范围匹配与精度计算。 |
| 长整型 | 整数数值 | 设备ID、工单编号、批次号、计数器读数、年份 | 适用于精确匹配与编号类检索。 |
| 联合索引 | 多字段组合 | 设备名称+安装位置、物料编码+供应商、批次号+工序 | 通过运算符(AND/OR)组合多个子字段条件。 |
| JSON | 结构化扩展属性 | 动态扩展字段、嵌套属性、配置项等灵活建模需求。如: 设备扩展属性、工艺参数包、质量特性值、分类属性(ClsAttrs) |
|
分词方法参考表
分词方法定义系统如何对字段内容进行切词,直接影响检索的精准度与召回率:
| 分词方法 | 说明 | 适用场景 |
|---|---|---|
| 不分词 | 不对内容进行切分,整体作为一个词处理。 | 设备编码、物料编号、资产编码、工件图号等需精准定位的短文本标识。 |
| 普通分词 | 基于系统默认词典进行通用分词,平衡语义与效率。 | 设备名称、供应商名称、工艺路线名称、技术文档标题。 |
| 英文普通分词 | 英文按空格分词,中文按单字分词。 | 含英文术语的工艺描述、进口设备型号(如SIEMENS S7-1500)。 |
| 最全分词 | 粒度介于“普通分词”和“单字分词”之间,兼顾语义完整性与召回率。 | 标准规范名称、技术术语(如GB/T 12345-2025)。 |
| 单字分词 | 拆分为单个汉字,最大化召回。 | 短代码、缩写名称、单字简称。 |
| 分隔符分词 | 按照指定符号切分,需配合“分词选项”使用。 | 多级编码(如A-B-C-001)、层级分类码。 |
分词选项说明
针对特定分词方法的附加处理策略:
| 适用分词方法 | 可选策略 | 说明 | 示例 |
|---|---|---|---|
| 全拼 | 支持拼音全拼检索。 | 输入“shebei”,可匹配“设备” |
| 简拼 | 支持拼音首字母检索。 | 输入“sb”,可匹配“设备” | |
| 全拼+简拼 | 同时支持全拼与简拼。 | 输入“sb”或“shebei”均可匹配“设备” | |
| 英文普通分词 | 词干化 | 去掉词缀,提取词干。 | running → run |
| 词形还原 | 还原单词原形,处理复数/时态。 | apples → apple | |
| 分隔符分词 | 空格分词 | 按空格切分。 | A B C → ["A","B","C"] |
| 英文逗号分词 | 按英文逗号(,)切分。 | A,B,C → ["A","B","C"] | |
| 英文分号分词 | 按英文分号(;)切分。 | A;B;C → ["A","B","C"] |
匹配方法支持矩阵
不同索引类型对匹配方法的支持存在差异,配置“匹配方法”时请参照如下信息:
| 索引类型 | 精确匹配 | 模糊匹配 | 范围匹配 | 短语匹配 |
|---|---|---|---|---|
| 文本 | √ | √ | × | √ |
| 日期 | √ | × | √ | × |
| 浮点型 | √ | × | √ | × |
| 长整型 | √ | × | √ | × |
| 联合索引 | √ | √ | × | √ |
| JSON | √ | √ | √ | √ |
配置建议:
- 文本索引不支持范围匹配。如需按字符串范围筛选(如编码区间001-010),建议改用长整型存储,或使用多个过滤条件组合。
- 日期、浮点型、长整型不支持模糊匹配和短语匹配,因为这些类型基于数值/时间序检索,不涉及文本相似性计算。
- 联合索引不支持范围匹配。如需对联合索引中的某个字段进行范围查询,建议在联合索引之外,单独为该字段配置一个专用的范围索引。
下一步操作
完成索引规则的配置后,您需要进行以下配置以启用检索功能:
- 关联实体属性:将索引映射到具体的数据模型实体属性。具体操作请参见为搜索服务定义配置服务实体。
- 发布与同步:发布服务并初始化历史数据索引。具体操作请参见发布搜索服务定义。