# 🧩 Summary ## 场景 ```Java 场景:用户要"文艺4日游" 只用检索: 找到20篇帖子 → LLM随机组合POI 问题:组合可能不合理(没人会把A和B排一天) 加入图谱: 知道哪些POI经常被一起安排 A -[同日出现10次]-> B A -[同日出现2次]-> C → 优先推荐A+B组合 ``` # 解决 **图谱构建(通俗版)** ``` shell # 从帖子中提取关系 帖子1:"Day1 西湖→灵隐寺→飞来峰" 提取: 西湖 -[同日]-> 灵隐寺 灵隐寺 -[同日]-> 飞来峰 西湖 -[同日]-> 飞来峰 帖子2:"Day1 西湖→雷峰塔 Day2 灵隐寺" 提取: 西湖 -[同日]-> 雷峰塔 西湖 -[不同日]-> 灵隐寺 # 累计1000篇帖子后 图谱结构: 灵隐寺 ↑ (80次) 西湖 ↓ (120次) 雷峰塔 # 用Neo4j查询 MATCH (a:POI {name:'西湖'})-[r:SAME_DAY]->(b:POI) WHERE r.count > 50 // 至少50次共现 RETURN b.name, r.count ORDER BY r.count DESC ``` # Cues [[PostGIS]] 关系图谱: [[Neo4j]] # **图数据库 vs 关系数据库** ```shell 关系数据库存关系: poi_relations表 | poi_a | poi_b | same_day_count | |--------|---------|----------------| | 西湖 | 灵隐寺 | 80 | | 西湖 | 雷峰塔 | 120 | 查询"西湖的朋友的朋友": 需要多次JOIN,慢! 图数据库(Neo4j): 天然存储关系,查询快 MATCH (西湖)-[:SAME_DAY*2]-(推荐) RETURN 推荐 // 2跳查询,毫秒级 ``` # 💡 Cues # Notes