全局搜索
全局搜索功能提供了一个统一的搜索界面,可以快速查找整个 OmniCRM 数据库中的客户、联系人、服务、库存和站点。
访问全局搜索
在 CRM 的任何地方:
点击顶部导航栏中的搜索图标或导航到:
全局搜索页面会出现一个大型搜索框和过滤选项。
工作原理
全局搜索在五种数据类型之间执行跨实体搜索:
搜索内容:
- 客户 - 客户名称
- 联系人 - 名字、姓氏、电子邮件地址、电话号码
- 站点 - 站点名称
- 库存 - 序列号、ICCID、标识符(itemtext1,itemtext2)
- 服务 - 服务名称、服务 UUID
搜索行为:
- 部分匹配 - 搜索包含您的查询的术语(例如,“Smith”匹配“John Smith”和“Smithson”)
- 不区分大小写 - “john”匹配“John”、“JOHN”和“john”
- 多个实体 - 单次搜索返回所有实体类型的结果
- 分页结果 - 默认每页显示 10 个结果
执行搜索
基本搜索
- 在搜索框中输入您的搜索词
- 点击**“搜索”**或按 Enter
{.align-center width="800px"}
示例搜索词:
- 客户名称:
"Acme Corp" - 电话号码:
"+1234567890"或"1234567890" - 电子邮件:
"john@example.com"或"john" - 序列号:
"ICCID8944"或仅"8944" - 服务 UUID:
"123e4567-e89b"
包含已关闭账户
默认情况下,搜索仅返回开放客户账户的结果。
要搜索所有账户,包括已关闭的账户:
- 勾选**“包含已关闭账户”**复选框
- 再次点击**“搜索”**
这将搜索:
- 状态为
customer_status = "Closed"的客户 - 与已关闭客户相关联的联系人、服务、站点和库存
已关闭账户搜索的用例:
- 查找历史客户记录
- 定位已停用服务的设备
- 查找旧电话号码或服务
- 恢复客户数据以重新激活
理解搜索结果
结果显示格式
结果以可滚动列表的形式显示:
John Smith 客户 ID: 123 类型: customer
John Smith (联系人) 客��� ID: 123 类型: contact
手机 - +44 7700 900123 客户 ID: 123 类型: service
每个结果显示:
- 名称/标题 - 主要标识符(可点击链接)
- 客户 ID - 该记录所属的父客户
- 类型 - 实体类型(客户、联系人、站点、库存、服务)
结果类型解释
客户结果:
点击后打开客户概览页面,显示所有详细信息、服务、联系人等。
联系人结果:
点击后打开客户页面,活动标签为联系人,滚动到特定联系人。
站点结果:
点击后打开客户页面,活动标签为站点。
库存结果:
点击后打开客户页面,活动标签为库存。如果库存未分配(无 customer_id),则链接到主库存列表。
服务结果:
点击后打开客户页面,活动标签为服务,突出显示特定服务。
从结果导航
所有搜索结果都是可点击链接,直接导航到相关页面:
链接模式:
/customers/{customer_id}- 客户记录/customers/{customer_id}#4- 联系人(标签 4)/customers/{customer_id}#2- 站点(标签 2)/customers/{customer_id}#8- 库存(标签 8)/customers/{customer_id}#3- 服务(标签 3)/inventory-items-list- 未分配的库存
哈希(#)片段在客户页面加载时会自动选择正确的标签。
分页
结果按每页 10 项进行分页:
显示结果 11-20,共 47 项
通过以下方式浏览页面:
- 上一页/下一页 按钮
- 页码 - 点击特定页面
- 键盘 - 左/右箭头(如果已实现)
常见搜索场景
场景 1:通过电话查找客户
用户来电,提供电话号码。
结果: • John Smith (联系人) - 客户 ID: 123 • 手机 - 555-0123 (服务) - 客户 ID: 123
点击任一结果以访问客户账户。
场景 2:定位 SIM 卡
技术人员需要找到哪个客户拥有特定的 SIM。
结果: • 8944538000000001234 (库存) - 客户 ID: 456
点击结果查看 SIM 分配、客户详细信息。
场景 3:查找非活跃客户
需要定位一个 6 个月前关闭账户的客户。
☑ 包含已关闭账户
结果: • Acme Corporation (客户) - 客户 ID: 789
场景 4:通过电子邮件搜索
客户发送电子邮件给支持,工作人员需要找到他们的账户。
结果: • John Smith (联系人) - 客户 ID: 123
场景 5:通过 UUID 查找服务
配置日志显示服务 UUID,需要找到哪个客户。
结果: • 手机 - +44 7700 900123 (服务) - 客户 ID: 456
搜索提示
为了获得最佳结果:
- 使用部分术语 - “Smith” 比 “John Smith” 更适合更广泛的结果
- 尝试变体 - 如果“John”无效,尝试电话或电子邮件
- 包含已关闭账户 - 在搜索历史数据时
- 对设备要具体 - 使用完整的序列号进行库存搜索
- 搜索服务 UUID - 当其他标识符未知时
按实体搜索的内容:
客户:
- 仅客户名称(不包括地址、备注或其他字段)
联系人:
- 名字
- 姓氏
- 电子邮件地址
- 电话号码
站点:
- 仅站点名称
库存:
- itemtext1(通常为 ICCID、序列号、MAC 地址)
- itemtext2(通常为 IMSI、次要标识符)
- 注意:不搜索 itemtext3-20 或库存备注
服务:
- 服务名称
- 服务 UUID
不搜索的内容:
- 客户地址
- 客户备注
- 交易描述
- 发票详细信息
- 配置日志
- 活动日志条目
- 库存备注(超出 itemtext1/2)
API 参考
全局搜索端点
GET /utilities/search_everything?search=Smith&page=1&per_page=10&search_closed_records=false
Authorization: Bearer <token>
查询参数:
search(必需) - 搜索词page(可选) - ���码(默认:1)per_page(可选) - 每页结果(默认:10)search_closed_records(可选) - 包含已关闭账户(默认:false)
响应:
{
"data": [
{
"id": 123,
"name": "John Smith",
"customer_id": 123,
"type": "customer"
},
{
"id": 456,
"name": "John Smith",
"customer_id": 123,
"type": "contact"
},
{
"id": 789,
"name": "Mobile - +44 7700 900123",
"customer_id": 123,
"type": "service"
}
],
"pagination": {
"current_page": 1,
"per_page": 10,
"total_pages": 5,
"total_items": 47
}
}
搜索逻辑(后端):
后端在所有实体表之间执行 SQL UNION:
-- Customers
SELECT customer_id AS id,
customer_name AS name,
customer_id,
'customer' AS type
FROM customer
WHERE customer_name LIKE '%Smith%'
AND customer_status = 'Open'
UNION ALL
-- Contacts
SELECT contact_id AS id,
CONCAT(contact_firstname, ' ', contact_lastname) AS name,
customer_id,
'contact' AS type
FROM customer_contact
WHERE (contact_firstname LIKE '%Smith%' OR
contact_lastname LIKE '%Smith%' OR
contact_email LIKE '%Smith%' OR
contact_phone LIKE '%Smith%')
UNION ALL
-- Sites
SELECT site_id AS id,
site_name AS name,
customer_id,
'site' AS type
FROM customer_site
WHERE site_name LIKE '%Smith%'
UNION ALL
-- Inventory
SELECT inventory_id AS id,
itemtext1 AS name,
customer_id,
'inventory' AS type
FROM inventory
WHERE itemtext1 LIKE '%Smith%' OR
itemtext2 LIKE '%Smith%'
UNION ALL
-- Services
SELECT service_id AS id,
service_name AS name,
customer_id,
'service' AS type
FROM customer_service
WHERE service_name LIKE '%Smith%' OR
service_uuid LIKE '%Smith%'
结果随后被分页并返回。
性能考虑
搜索性能:
- 搜索使用带通配符的 LIKE 查询(
%term%) - 当前未实现全文索引
- 大型数据库(>100k 客户)可能会体验到较慢的搜索
- 为了性能,结果限制为每页 10 个
优化提示:
- 使用具体的搜索词以减少结果集
- 使用已关闭账户过滤器以减少搜索范围
- 考虑在经常搜索的字段上添加数据库索引
故障排除
未找到结果(但记录存在)
- 原因: 搜索词与存储的数据格式不匹配
- 示例:
- 电话存储为
"+44 7700 900123",搜索"07700900123"将无法匹��� - 电子邮件存储为
"<john.smith@example.com>",搜索"john"将无法匹配
- 电话存储为
- 解决方案: 尝试变体,使用肯定存在的部分匹配
搜索太慢
- 原因: 大型数据库,跨多个表的复杂查询
- 解决方案:
- 使用更具体的搜索词
- 限制为仅开放账户(取消勾选已关闭账户)
- 联系管理员关于数据库索引
结果链接到错误的客户
- 原因: 多个客户/联系人具有相同的名称
- 解决方案: 使用客户 ID 进行区分,或按唯一标识符(电子邮件、电话)搜索
已关闭账户未出现
- 原因: 未勾选“包含已关闭账户”复选框
- 解决方案: 勾选该框并再次搜索
相关文档
basics_customers- 客户管理basics_navigation- 一般导航administration_inventory- 库存搜索