唯杰地图 logo唯杰地图
VJMAP
EN

query-fulltext

vjmap/references/backend/query-fulltext.md 4.4 KB117 行
原文

本文回答:全文搜索(CAD 图纸秒搜 / 相似度 / AI 语义)使用与后端配置。

一、能搜什么

  • 文字:单行文字、多行文本、属性注记、块属性
  • 命名:图层名、块名、线型名、填充符号名
  • 用户自定义

跨多张图搜索(工作区内),不是单图。

二、使用入口

方式 A:云端管理平台

打开 vjmap 云端管理平台,顶部搜索框输入关键词。支持:

  • 搜索建议 / 高级过滤(版本 / 类型 / 时间 / 边界框 / 结果数)。
  • 结果排序(按距离、相似度)。
  • 可视化定位(点击结果 → 定位 + 高亮)。

方式 B:REST 接口(前端自建 UI)

GET/POST /api/v1/service/fullsearch/search?token=xxx

body(type 是字符串,支持单值 "1"、多值 "1,2,5"、范围 "1-3"、混合 "1-3,6";不是 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(如有暴露)

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 / ...

点击某条可定位:

const bounds = vjmap.GeoBounds.fromString(hit.bounds);
map.fitMapBounds(bounds, { padding: 120 });

五、后端配置(config.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 的红圆"):

对应 MCP 工具:fullSearch, queryFeatures(见 ai-features)。

八、常见坑

  1. 新上传的图立刻搜不到 → 默认 sync_delay_minutes: 0(不自动同步),全量重建在凌晨 cron_fullsearch_hour(默认 2 点)。开发时把 sync_delay_minutes 设成正数分钟(如 2)即可获得延迟自动重建。
  2. 隐藏图索引 → 默认允许(只有密码保护图默认禁)。若需要隐藏图也跳过,改配置。
  3. 中文分词 / 繁简体:系统使用现代全文检索引擎,支持中文分词;繁简可能要启用额外词典。
  4. bounding_box 传错了坐标系:该 bbox 是 CAD 坐标(非经纬度)。