Roadmap · 下一步
STC + dict 之後的方向 · 主打 POC:用 Neo4j 圖資料庫做關聯查詢
🧪 主打 POC · Neo4j 圖資料庫
Neo4j — 把「商品 / POI / 關鍵字」變成可遍歷的圖
POC 階段
ES 適合「關鍵字檢索」,但**「找出實體間的關聯」**並不是它的強項。
我們正在試 Neo4j 圖資料庫 —— 同樣一份商品 + 關鍵字資料,重新組織成「點 + 邊」,就能用 Cypher 一行查出共現分群、相關推薦、跨類別關聯。
範例:以「Egg」為中心節點,輻射到 Tech / Sport / Food / City / Company 等類別
圖資料庫怎麼運作?
中心
查詢時不用 JOIN —— 直接「**順著關係走**」:「Egg 學過什麼?」「Egg 跟誰一樣愛吃鮮奶茶?」「跟 Egg 同住高雄的還有誰?」
(Egg:Person) 連到不同「類別」的節點,每條邊有自己的關係類型:STUDY、LIKE、WORK_AT、LIVE_IN、JOIN。
查詢時不用 JOIN —— 直接「**順著關係走**」:「Egg 學過什麼?」「Egg 跟誰一樣愛吃鮮奶茶?」「跟 Egg 同住高雄的還有誰?」
🎯 把這個概念套到 STC 商品資料
(Egg:Person)
→
(GRP12345:Product) — 一個團體商品
STUDY / LIKE
→
CONTAINS / HAS_KEYWORD / VISITS
Tech / Sport / Food
→
POI / HOTEL / FOOD / ACTIVITY / 主題 / 區域
類別著色分群
→
沿用第 3 頁 dict 的 9 類分類標籤
📝 Cypher 範例 · 找跟「立山黑部」最常一起出現的 POI
// 圖路徑:POI ← 商品 → POI(共現) MATCH (a:POI {name:'立山黑部'})<-[:CONTAINS]-(p:Product)-[:CONTAINS]->(b:POI) WHERE a <> b RETURN b.name AS 相關景點, count(p) AS 共現次數 ORDER BY 共現次數 DESC LIMIT 10 // 期望結果:合掌村 28 / 兼六園 22 / 白川鄉 18 / 黑部水壩 15 ...
🔍 ES 強項
全文檢索、模糊匹配、tf-idf 排序、向量搜尋;用戶輸入自然語言查商品時的主力。
🕸️ Neo4j 強項
多跳關聯查詢、按分類分群、推薦「相關 POI / 相似商品」、跨類別交叉分析(食物 ↔ 季節 ↔ 區域)。