顶栏搜不到某个字段
现象:在列表上方搜索框输入关键词,明明记录里有该内容,却搜不出来;或新建了自定义字段后无法被搜索框匹配。
原因:列表搜索框使用的是 Espo 文本过滤(Text Filter),只会在实体配置的 文本过滤字段(Text Filter Fields) 中查找,不是表里所有列都会参与。
解决步骤(管理员)
以「销售单上要搜自定义字段 customerPoNo(客户 PO 号)」为例:
1. 加入文本过滤字段
- 管理 → 实体管理器 → 销售订单 CSalesOrder
- 点击 编辑(Edit 实体,不是编辑某条记录)
- 找到 文本过滤字段(Text Filter Fields)
- 从可用字段中 添加
customerPoNo(或您的字段内部名) - 保存
也可在实体 编辑 页一次性维护多个可文本搜索的字段(名称、编号、常用自定义 varchar 等)。
2. (可选)加入「按字段搜索」
若还需要在 按字段搜索 ▼ 里按该字段精确筛选(等于、包含、区间):
- 同一实体 → 布局 → Search Filters(搜索筛选 / filters)
- 添加字段 → 保存
- 管理 → 清除缓存
详见 列表筛选与保存过滤器。
3. 验证
- 打开 销售单 列表
- 在搜索框输入 PO 号片段 → 搜索
- 应能命中对应记录
字段类型限制
| 适合文本搜索 | 通常不适合直接进搜索框 |
|---|---|
| 单行文本 varchar | 纯数字金额(可用「按字段搜索」) |
| 名称、编号类 | Link 关联(用关联实体的文本字段或按字段搜 Link) |
| 部分 enum | 长文本 text(视配置而定) |
Link 字段(如「客户」)一般通过 客户名称 等已配置的关联字段间接搜到。
与全文搜索的区别
管理 → 实体管理器 → 编辑实体 中的 Full-Text Search(全文搜索) 影响顶栏 全局放大镜 的索引范围,与列表页搜索框是两套机制。列表搜不到时,优先检查 文本过滤字段。