5.1 常见特殊数据和应对策略¶
学习目标¶
- 掌握结构化数字表格入库和查询的方式
- 掌握结构化文本表格入库和查询的方式
- 掌握半结构化文档入库和查询的方式
- 掌握图片上文字入库和查询的方式
- 掌握图片、音频、视频的入库和查询的方式
一、结构化数字表格查询¶
1 问题¶
这类表格用向量检索效果极差,尤其是有多个同类表格的情况下,建议直接入结构化数据库,查询的时候使用大模型自动生成sql查询。
XX手机在福建省各市逐月销售记录(单位:万台)
| 城市 | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 | 全年总量 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 福州 | 12.5 | 8.2 | 10.3 | 9.8 | 11.2 | 15.6 | 18.4 | 16.7 | 14.5 | 12.8 | 13.9 | 17.2 | 150.7 |
| 厦门 | 9.8 | 6.5 | 8.1 | 7.6 | 9.3 | 12.1 | 14.2 | 12.9 | 11.3 | 10.0 | 10.8 | 13.5 | 115.1 |
| 泉州 | 15.2 | 10.0 | 12.5 | 11.8 | 13.6 | 18.9 | 22.3 | 20.1 | 17.5 | 15.4 | 16.7 | 20.5 | 194.5 |
| 漳州 | 7.3 | 4.8 | 6.2 | 5.9 | 7.1 | 9.8 | 11.5 | 10.4 | 9.0 | 8.0 | 8.7 | 10.9 | 99.6 |
| 莆田 | 5.6 | 3.7 | 4.6 | 4.3 | 5.2 | 7.1 | 8.4 | 7.6 | 6.6 | 5.8 | 6.3 | 7.9 | 72.1 |
| 三明 | 3.2 | 2.1 | 2.6 | 2.4 | 2.9 | 4.0 | 4.7 | 4.2 | 3.6 | 3.2 | 3.4 | 4.3 | 41.6 |
| 南平 | 2.8 | 1.8 | 2.3 | 2.1 | 2.5 | 3.4 | 4.0 | 3.6 | 3.1 | 2.7 | 2.9 | 3.7 | 36.4 |
| 龙岩 | 4.1 | 2.7 | 3.3 | 3.1 | 3.7 | 5.0 | 5.9 | 5.3 | 4.6 | 4.0 | 4.3 | 5.4 | 52.1 |
| 宁德 | 3.5 | 2.3 | 2.9 | 2.7 | 3.2 | 4.3 | 5.1 | 4.6 | 4.0 | 3.5 | 3.8 | 4.8 | 45.7 |
| 平潭 | 0.8 | 0.5 | 0.6 | 0.6 | 0.7 | 0.9 | 1.1 | 1.0 | 0.9 | 0.8 | 0.8 | 1.0 | 9.8 |
2 解决方案¶
2.1 建表方案¶
你是一位数据库专家,下面的表格是XX手机在福建省各市逐月销售记录(单位:万台),需要写入数据库,给出建表的sql语句,遵照第三范式。
| 城市 | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 | 全年总量 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- |
| 福州 | 12.5 | 8.2 | 10.3 | 9.8 | 11.2 | 15.6 | 18.4 | 16.7 | 14.5 | 12.8 | 13.9 | 17.2 | 150.7 |
| 厦门 | 9.8 | 6.5 | 8.1 | 7.6 | 9.3 | 12.1 | 14.2 | 12.9 | 11.3 | 10.0 | 10.8 | 13.5 | 115.1 |
| 泉州 | 15.2 | 10.0 | 12.5 | 11.8 | 13.6 | 18.9 | 22.3 | 20.1 | 17.5 | 15.4 | 16.7 | 20.5 | 194.5 |
| 漳州 | 7.3 | 4.8 | 6.2 | 5.9 | 7.1 | 9.8 | 11.5 | 10.4 | 9.0 | 8.0 | 8.7 | 10.9 | 99.6 |
| 莆田 | 5.6 | 3.7 | 4.6 | 4.3 | 5.2 | 7.1 | 8.4 | 7.6 | 6.6 | 5.8 | 6.3 | 7.9 | 72.1 |
| 三明 | 3.2 | 2.1 | 2.6 | 2.4 | 2.9 | 4.0 | 4.7 | 4.2 | 3.6 | 3.2 | 3.4 | 4.3 | 41.6 |
| 南平 | 2.8 | 1.8 | 2.3 | 2.1 | 2.5 | 3.4 | 4.0 | 3.6 | 3.1 | 2.7 | 2.9 | 3.7 | 36.4 |
| 龙岩 | 4.1 | 2.7 | 3.3 | 3.1 | 3.7 | 5.0 | 5.9 | 5.3 | 4.6 | 4.0 | 4.3 | 5.4 | 52.1 |
| 宁德 | 3.5 | 2.3 | 2.9 | 2.7 | 3.2 | 4.3 | 5.1 | 4.6 | 4.0 | 3.5 | 3.8 | 4.8 | 45.7 |
| 平潭 | 0.8 | 0.5 | 0.6 | 0.6 | 0.7 | 0.9 | 1.1 | 1.0 | 0.9 | 0.8 | 0.8 | 1.0 | 9.8 |
结果如下:
-- 创建城市表
CREATE TABLE cities (
city_id INT PRIMARY KEY AUTO_INCREMENT,
city_name VARCHAR(50) NOT NULL UNIQUE,
region VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 创建产品表
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100) NOT NULL,
brand VARCHAR(50) NOT NULL,
model VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 创建销售记录表
CREATE TABLE sales_records (
record_id INT PRIMARY KEY AUTO_INCREMENT,
city_id INT NOT NULL,
product_id INT NOT NULL,
year INT NOT NULL,
month TINYINT NOT NULL CHECK (month BETWEEN 1 AND 12),
sales_volume DECIMAL(5,1) NOT NULL COMMENT '销售数量(万台)',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (city_id) REFERENCES cities(city_id),
FOREIGN KEY (product_id) REFERENCES products(product_id),
UNIQUE KEY (city_id, product_id, year, month)
);
-- 创建年度销售汇总视图(可选)
CREATE VIEW annual_sales_summary AS
SELECT
c.city_name,
p.product_name,
s.year,
SUM(s.sales_volume) AS total_sales
FROM
sales_records s
JOIN
cities c ON s.city_id = c.city_id
JOIN
products p ON s.product_id = p.product_id
GROUP BY
c.city_name, p.product_name, s.year;
2.2 查询方案¶
你是一位数据库专家,根据【数据库表结构】和【用户问题】,给出查询数据库的sql语句。
【用户问题】
泉州市四月份出货多少?
【数据库表结构】
-- 创建城市表
CREATE TABLE cities (
city_id INT PRIMARY KEY AUTO_INCREMENT,
city_name VARCHAR(50) NOT NULL UNIQUE,
region VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 创建产品表
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100) NOT NULL,
brand VARCHAR(50) NOT NULL,
model VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 创建销售记录表
CREATE TABLE sales_records (
record_id INT PRIMARY KEY AUTO_INCREMENT,
city_id INT NOT NULL,
product_id INT NOT NULL,
year INT NOT NULL,
month TINYINT NOT NULL CHECK (month BETWEEN 1 AND 12),
sales_volume DECIMAL(5,1) NOT NULL COMMENT '销售数量(万台)',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (city_id) REFERENCES cities(city_id),
FOREIGN KEY (product_id) REFERENCES products(product_id),
UNIQUE KEY (city_id, product_id, year, month)
);
-- 创建年度销售汇总视图(可选)
CREATE VIEW annual_sales_summary AS
SELECT
c.city_name,
p.product_name,
s.year,
SUM(s.sales_volume) AS total_sales
FROM
sales_records s
JOIN
cities c ON s.city_id = c.city_id
JOIN
products p ON s.product_id = p.product_id
GROUP BY
c.city_name, p.product_name, s.year;
SELECT
c.city_name,
s.year,
s.month,
SUM(s.sales_volume) AS total_sales_volume
FROM
sales_records s
JOIN
cities c ON s.city_id = c.city_id
WHERE
c.city_name = '泉州'
AND s.month = 4
AND s.year = 2025 -- 指定查询年份
GROUP BY
c.city_name, s.year, s.month;
二、结构化文本表格查询¶
1 问题¶
XX品牌汽车故障与解决办法
| 故障现象 | 可能原因 | 解决方法 |
|---|---|---|
| 发动机无法启动 | 1. 电瓶没电或电极腐蚀 2. 点火线圈/火花塞故障 3. 燃油泵损坏或油路堵塞 | 1. 充电或更换电瓶 2. 检查点火系统 3. 检查油泵压力或清洗油路 |
| 怠速不稳/抖动 | 1. 节气门积碳 2. 氧传感器故障 3. 喷油嘴堵塞 | 1. 清洗节气门 2. 更换氧传感器 3. 使用燃油添加剂或清洗喷油嘴 |
| 发动机过热 | 1. 冷却液不足或泄露 2. 水泵故障 3. 节温器卡滞 | 1. 补充冷却液并检查管路 2. 更换水泵 3. 更换节温器 |
| 排气管冒异常烟 | - 黑烟:空燃比失调(混合气过浓) - 蓝烟:烧机油(活塞环/气门油封老化) - 白烟:冷却液进入燃烧室(缸垫损坏) | 1. 检查进气/燃油系统 2. 维修发动机内部密封件 3. 更换缸垫 |
2 解决方案¶
你是一位汽车行业的专家,将表格【XX品牌汽车故障与解决办法】转化的每一行有效数据转化成一条问答。
XX品牌汽车故障与解决办法
| **故障现象** | **可能原因** | **解决方法** |
| ------------------ | ------------------------------------------------------------ | ----------------------------------------------------------- |
| **发动机无法启动** | 1. 电瓶没电或电极腐蚀 2. 点火线圈/火花塞故障 3. 燃油泵损坏或油路堵塞 | 1. 充电或更换电瓶 2. 检查点火系统 3. 检查油泵压力或清洗油路 |
| **怠速不稳/抖动** | 1. 节气门积碳 2. 氧传感器故障 3. 喷油嘴堵塞 | 1. 清洗节气门 2. 更换氧传感器 3. 使用燃油添加剂或清洗喷油嘴 |
| **发动机过热** | 1. 冷却液不足或泄露 2. 水泵故障 3. 节温器卡滞 | 1. 补充冷却液并检查管路 2. 更换水泵 3. 更换节温器 |
| **排气管冒异常烟** | - **黑烟**:空燃比失调(混合气过浓) - **蓝烟**:烧机油(活塞环/气门油封老化) - **白烟**:冷却液进入燃烧室(缸垫损坏) | 1. 检查进气/燃油系统 2. 维修发动机内部密封件 3. 更换缸垫 |
发动机无法启动故障
Q:XX品牌汽车出现发动机无法启动的情况,应该如何诊断处理?
A:诊断流程:①检查电瓶电量及电极状况,充电或更换电瓶;②检测点火线圈与火花塞工作状态;③测量燃油泵压力,必要时清洗油路。可能原因包括:电瓶失效、点火系统故障或燃油供给异常。
怠速不稳故障
Q:车辆怠速时出现明显抖动现象,XX品牌建议如何检修?
A:检修步骤:①使用专用设备清洗节气门积碳;②用诊断仪检测氧传感器数据流,异常则更换;③添加燃油系统清洁剂或拆洗喷油嘴。主要诱因是:节气门脏污、氧传感器失灵或喷油嘴堵塞。
发动机过热故障
Q:XX品牌汽车仪表显示高温报警,正确的应急处理方案是?
A:应急处理:①立即熄火检查冷却液存量及泄漏点;②听诊水泵运转异响;③测试节温器开启温度。故障根源可能是:冷却液缺失、水泵叶轮损坏或节温器机械卡死。
排烟异常故障
Q:如何通过排烟颜色判断XX品牌汽车发动机故障类型?
A:诊断标准:黑烟:混合气过浓,需检查空气滤清器/燃油压力调节器;蓝烟:烧机油,应测量气缸压力并检查气门油封;白烟:冷却液渗入,重点检测缸盖平面度及缸垫密封性.对应解决方案包括:调整空燃比、大修发动机或更换缸垫总成。 (AI生成)
三、半结构化档案查询¶
1 问题¶
某法院关于入室盗窃案的372个判例,内容高度相似,最大的不同是时间、地点、人物、物品名称等实体。
XX市XX区人民法院
刑事判决书
(2025)XX刑初字第XXX号
公诉机关:XX市XX区人民检察院
被告人:张某,男,1990年5月12日生,汉族,初中文化,无业,住XX市XX区XX路XX号。2025年8月15日因涉嫌盗窃罪被刑事拘留,同年8月30日被逮捕。现羁押于XX市看守所。
辩护人:李某,XX律师事务所律师。
案件审理情况:
XX市XX区人民检察院以XX检刑诉〔2025〕XXX号起诉书指控被告人张某犯盗窃罪,于2025年9月20日向本院提起公诉。本院依法适用简易程序,实行独任审判,公开开庭审理了本案。
经审理查明:
2025年7月10日凌晨2时许,被告人张某携带螺丝刀、手套等工具,撬开XX小区3栋2单元101室窗户,潜入被害人王某家中,窃取现金人民币5800元、黄金项链一条(价值人民币12,000元)及笔记本电脑一台(价值人民币6,500元),后逃离现场。同年8月10日,张某在销赃时被公安机关抓获,赃物部分追回。
上述事实,被告人张某在开庭审理过程中无异议,并有被害人陈述、监控录像、价格认定结论书、扣押清单等证据证实,足以认定。
本院认为:
被告人张某以非法占有为目的,入户盗窃他人财物,数额较大,其行为已构成盗窃罪。公诉机关指控罪名成立。鉴于张某到案后如实供述罪行,自愿认罪认罚,部分赃物已追回,可依法从轻处罚。
判决如下:
一、被告人张某犯盗窃罪,判处有期徒刑二年六个月,并处罚金人民币一万元。
(刑期从判决执行之日起计算,判决执行前先行羁押的,羁押一日折抵刑期一日,即自2025年8月15日起至2028年2月14日止。)
二、责令被告人张某退赔被害人王某剩余经济损失人民币8,300元。
如不服本判决,可在收到判决书第二日起十日内向XX市中级人民法院提起上诉。
审判员:XXX
二〇二五年十月十四日
书记员:XXX
2 解决方案¶
这类文本不适合用向量检索,因为语义非常接近,可以考虑用实体做检索。
解决办法是:抽取关键实体,存入ElasticSearch或milvus元数据
你是一位法律问题专家,从【判决案例】中抽取【特定实体】,并以【指定格式】输出,只允许输出【指定格式】规定的内容,不允许输出任何其他字符。
【特定实体】
["被告人姓名","作案时间","作案地点","赃物","有期徒刑",“罚金”]
【指定格式】
{"被告人姓名":"张大彪","作案时间":"2025年6月25日",,"":"","":"","":"","":"","":""}
四、图片上的文本¶
1 问题¶

2 解决方案¶
2.1 ocr¶
图片量非常大的项目,可以考虑使用传统ocr技术,开源模型里可以选用padddleocr

2.2 多模态大模型¶
图片量有限但对效果有较严格要求的项目,可以考虑使用多模态大模型
员工编号 姓名 出生日期
ESB-0001 帮 帮 1983-11-7
ESB-0012 帮 帮 忙 1992-1-3
ESB-0113 长孙无忌 2000-10-20
ESB-2200 纳兰性德 1971-1-23
ESB-0016 小 李 1982-2-11
ESB-0321 纳兰明珠 1998-12-31
ESB-0133 司 马 德 1996-5-4
ESB-0002 小 杜 1975-10-10
ESB-0010 小 圆 圆 1992-2-3
如果想要把格式也提取出来,可以这样写提示词
| A | B | C |
|---|---|---|
| 员工编号 | 姓名 | 出生日期 |
| ESB-0001 | 帮 | 帮 |
| ESB-0012 | 帮 | 帮 |
| ESB-0113 | 长孙无忌 | 2000-10-20 |
| ESB-2200 | 纳兰性德 | 1971-1-23 |
| ESB-0016 | 小 | 李 |
| ESB-0321 | 纳兰明珠 | 1998-12-31 |
| ESB-0133 | 司 | 马 |
| ESB-0002 | 小 | 杜 |
| ESB-0010 | 小 | 圆 |
五、图片检索¶
1 多模态大模型生成描述文本¶
图片量有限,绝大部分都是文本的项目,可以考虑使用多模态大模型生成描述,把图片转化成文本来处理,注意:生成文本时要结合图片的上下文,生成尽可能符合情境的描述文本。

好的,这是一张充满温馨和喜悦的生日庆祝照片。
照片的主角是一个小男孩,他正坐在一张铺着金色花纹桌布的桌子前。他头上戴着一顶银色的皇冠形生日帽,帽子上印有“HAPPY BIRTHDAY”的字样,脸上洋溢着幸福和期待的笑容。
男孩面前是一个浅绿色的圆形生日蛋糕,蛋糕上装饰着新鲜的水果,包括切块的芒果、草莓、蓝莓,还有几片橙子干和小华夫饼,看起来非常诱人。他正用一把粉色的塑料蛋糕刀,小心翼翼地准备切下第一块蛋糕。
背景是一个棕色的布艺沙发,整体环境是典型的家庭客厅。整个画面光线明亮,氛围温馨,捕捉到了一个孩子在生日派对上最纯真、最快乐的瞬间。
2 多模态嵌入¶
图片量很多,文本量较少的项目,可以考虑使用多模态嵌入
六、音频检索¶
1 语音¶
使用ASR转换成文本处理
2 音乐¶
结合元数据,判定音乐的风格和曲目
3 环境音¶
结合元数据,判定场景。但一般来说效果较差。
七、视频检索¶
视频是非常综合性的内容,融合了图片、音频、OCR、文本、元数据等各种形态的数据
1 关键帧¶
参见图片检索部分,使用的时候可以结合视频的标题、描述等信息
2 画面文本和字幕¶
参见图片上的文本,可以结合音频ASR的结果互相校验
3 音频¶
参见音频检索,如果是语音,可以结合字幕、视频描述等信息;如果是场景音,可以结合关键帧等信息;如果是音乐,可以结合标题、视频描述等信息进行综合分析。