> **本文回答**：全文搜索（CAD 图纸秒搜 / 相似度 / AI 语义）使用与后端配置。

## 一、能搜什么

- 文字：单行文字、多行文本、属性注记、块属性
- 命名：图层名、块名、线型名、填充符号名
- 用户自定义

**跨多张图搜索**（工作区内），不是单图。

## 二、使用入口

### 方式 A：云端管理平台

打开 [vjmap 云端管理平台](https://vjmap.com/app/cloud/#/)，顶部搜索框输入关键词。支持：

- 搜索建议 / 高级过滤（版本 / 类型 / 时间 / 边界框 / 结果数）。
- 结果排序（按距离、相似度）。
- 可视化定位（点击结果 → 定位 + 高亮）。

### 方式 B：REST 接口（前端自建 UI）

```
GET/POST /api/v1/service/fullsearch/search?token=xxx
```

body（`type` 是**字符串**，支持单值 `"1"`、多值 `"1,2,5"`、范围 `"1-3"`、混合 `"1-3,6"`；不是 JSON 数组）：

```json
{
  "query": "水泵",
  "map_ver": "sys_zp_v1,sys_zp_v2",
  "workspace": "",
  "type": "1,2,3,4",
  "bounding_box": "100,200,500,800",
  "time_range": "7",
  "limit": 100,
  "offset": 0,
  "fields": "mapid,version,text,bounds,layerName",
  "facet": false
}
```

### 方式 C：前端 SDK（如有暴露）

```js
const { data: r } = await svc.httpPost(svc.serviceUrl("fullsearch/search"), {   // httpPost resolve {status,response,data,xhr}，结果在 .data
  query: "水泵", limit: 50
});
```

## 三、过滤条件字段

| 字段 | 说明 | 示例 |
|---|---|---|
| `query` | 关键词（多个用空格分） | `"水泵 A"` |
| `map_ver` | 限定在哪些图 / 版本内搜 | `"sys_zp,sys_cad2000_v2"` |
| `workspace` | 工作区 | `""` |
| `type` | 文档类型（字符串）：单值 `"1"`、多值 `"1,2,5"`、范围 `"1-3"`、混合 `"1-3,6"`；缺省=全部 | `"1,2,3,4"` |
| `bounding_box` | `minX,minY,maxX,maxY`；仅该范围内搜 | `"0,0,1000,1000"` |
| `time_range` | `"7"` 最近 7 天 / `"2024-01-01~2024-01-31"` | |
| `limit` | 返回最多条数 1-10000 | 默认 1000 |

**文档类型** `type`：1=单行文字 2=多行文本 3=属性注记 4=块属性 5=图层 6=块名 7=线型 8=填充符号 9=自定义。

## 四、搜索结果字段

```
mapid / version / type / text / bounds / layerName / blockName / ...
```

点击某条可定位：

```js
const bounds = vjmap.GeoBounds.fromString(hit.bounds);
map.fitMapBounds(bounds, { padding: 120 });
```

## 五、后端配置（config.json）

```json
"fullsearch": {
  "disable": false,
  "disable_index_hidden_maps": false,
  "disable_index_password_protected_maps": true,
  "disable_default_workspace": false,
  "batch_size": 1000,
  "sync_delay_minutes": 0,
  "cron_fullsearch_hour": 2,
  "linetype_max_num": 50
}
```

- `sync_delay_minutes`：图更新后 N 分钟自动重建该图索引；**0 表示不自动同步**（默认即 0，需要延迟重建要显式设成正数）。
- `cron_fullsearch_hour`：全量重建的定时小时（24h 制），默认 **2**（凌晨 2 点）。
- 结构里还有 `index_path`（索引存储路径）与 `pattern_max_num`（pattern 索引数量上限，默认每类 50）两个可配项，出厂 config.json 未列出。

## 六、相似度搜索

在云端管理平台每张图旁的"操作"→"地图相似度排序"。基于 SIFT + 深度学习向量化，结果按相似度递减。

## 七、AI 智能查询

在单图内，自然语言查询（"查半径为 10 的红圆"）：

- 云端管理平台 → 打开图 → 工具栏"AI 数据查询"。
- 或直接跳转 [AI 查询可视化页面](https://vjmap.com/app/visual/#/query?mapid=sys_zp&version=v1&mapopenway=GeomRender)。

对应 MCP 工具：`fullSearch`, `queryFeatures`（见 [ai-features](ai-features.md)）。

## 八、常见坑

1. **新上传的图立刻搜不到** → 默认 `sync_delay_minutes: 0`（不自动同步），全量重建在凌晨 `cron_fullsearch_hour`（默认 2 点）。开发时把 `sync_delay_minutes` 设成正数分钟（如 2）即可获得延迟自动重建。
2. **隐藏图索引** → 默认允许（只有密码保护图默认禁）。若需要隐藏图也跳过，改配置。
3. **中文分词 / 繁简体**：系统使用现代全文检索引擎，支持中文分词；繁简可能要启用额外词典。
4. **`bounding_box` 传错了坐标系**：该 bbox 是 CAD 坐标（非经纬度）。
