Shopify 為什麼用 C++ 自己寫商品搜尋引擎?Tobi Lütke 親口說:品味正在變成矩陣乘法
Tobi Lütke 說,過去電腦讀不懂的品味、潮流與在地審美,現在正在變成矩陣乘法。那「我的選品眼光 AI 學不走」還算護城河嗎?從 Shopify 用 C++ 自己造商品搜尋引擎這件事,看台灣賣家真正該補的功課。
先問你一件事。
你上一次在蝦皮打「洋裝」,跳出來的第一頁,有幾件是你真的想買的?
我用 Google 的搜尋建議(Autocomplete)實際抓了一輪台灣區的關鍵字。打「商品搜尋」,跳出來的除了 7-11、全聯、家樂福這種找入口的查詢,還有兩條特別刺眼:
- 「蝦皮 商品搜尋不到」
- 「蝦皮 商品搜尋排序降低」
這兩條不是消費者在問。是賣家在問。
有意思的是,同一個時間點,Shopify 的創辦人 Tobi Lütke 跟總裁 Harley Finkelstein 在 DotDev 2026 的爐邊談話上(2026-07-28),花了十幾分鐘解釋一件很燒錢的事:他們決定不用市面上現成的搜尋引擎,照 Tobi 的說法,是「從第一行 C++ 開始」自己寫了一個專門給商品用的搜尋系統,叫做 Catalog。
一家做電商平台的公司,跑去自己造搜尋引擎。
你知道為什麼嗎?
你每天在後台做的事,其實是在跟機器比手畫腳
切入重點,先講你熟悉的場景。
想像一下,你早上打開電腦,登入後台,準備上一件新的洋裝。你在標題欄位打了什麼?
我猜是這種東西:
【現貨免運】韓版 ins 風 復古 chic 顯瘦 洋裝 連身裙 大尺碼 洋裝
你自己心裡也知道這句話不是給人看的。沒有一個活人會這樣講話。你之所以這樣寫,是因為你在對機器喊話,而你手上唯一的工具就是把詞塞進去,看哪個中。
以前你要的是把關鍵字塞好塞滿,衝上第一頁。現在你發現塞得越滿,排序反而越掉,因為每個同行都在塞。
這件事的荒謬之處在於:你花了好幾年學會怎麼跟一個搜尋框相處,而那個搜尋框,本來就不是為了賣東西設計的。
Tobi 在台上是這樣說的:過去你想做商品搜尋,只能拿一套「為了資訊檢索(information retrieval)而生」的基礎設施硬套上去,而商品跟文件「extremely different」(差得非常遠)。他說網際網路從來沒有真正擁有過商品搜尋這塊基礎建設。
這就像拿圖書館的杜威十進位分類法去經營一家選物店。
圖書館的分類法很偉大,它解決的問題是「我知道我要哪本書,幫我找到它」。所以它在乎的是精確、唯一、不重複。但選物店在乎的是完全相反的事:「讓你遇見一個你還不知道自己想要的東西」。你走進一家選物店,店員問你今天想找什麼場合穿的,那個問句本身就不存在於杜威十進位法裡。
這裡有個坑:Tobi 的說法,跟 Shopify 自己的工程部落格對不上
到這邊為止都很順。但如果我只寫到這裡,那就是幫 Shopify 抄新聞稿。
我去翻了 Shopify 自己的工程部落格,發現台上講的故事,跟工程師寫的版本有出入。
在 Building world-class product search at Shopify(2025-11-12)這篇裡,他們講得很清楚:
「Off-the-shelf engines like Elasticsearch and Solr are excellent foundations, but meeting our scale would require significant re-architecture.」
翻成白話:Elasticsearch 跟 Solr 這些現成的搜尋引擎「是很棒的地基」,問題出在要撐住 Shopify 這種量體,得把架構整個重做一遍。
更關鍵的是下一句。同一篇文章寫著,他們的排序流程「combines classical information retrieval with modern ML」,也就是把古典的資訊檢索跟現代機器學習「結合」起來,包含錯字修正、同義詞、分面篩選(faceting)跟語意搜尋。
看到重點了嗎?
資訊檢索沒有被丟掉。它還在地基裡。
所以「傳統搜尋引擎不懂零售」這個說法,是台上為了講故事而簡化的版本。真正的分野,藏在同一篇文章的另一句話:
「Commerce search optimizes for conversion.」
零售搜尋優化的是「成交」。
這才是關鍵。網頁搜尋的目標函數是「相關」,你找到答案就可以關掉分頁了,Google 的任務就算完成。零售搜尋的目標函數是「成交」,每一個結果都可能變成一筆訂單、養活一家公司。
同樣一句「黑色洋裝」,Google 要給你最相關的資訊,蝦皮要給你最可能下單的那一件。

差別不在技術有多神。差別在你把哪個指標當成勝利。
而一旦勝利的標準變成「成交」,搜尋系統就不能只看懂文字。它得看懂場合、風格、地域、還有眼前這個人的偏好。
這些東西,才是接下來真正麻煩的地方。
(他們為此做了一套叫 RankFlow 的領域專用語言配上 TurboDSL 執行引擎,讓資料科學家寫 Python 風格的程式碼卻跑出 C++ 的速度,排序特徵運算加速 48%。這種苦工不會出現在任何一場 keynote 上。)
Tobi 講了一句話,我聽完有點涼:品味正在被模型讀懂
前面那些都還算產業新聞。真正讓我停下來重聽三次的,是接下來這一段。
Harley 問他為什麼商品這麼難搜。Tobi 舉了「時尚感」當例子,說一件東西「有多時尚」這個問題,取決於三件事:
- 第一是品類。 有些電子產品講究時尚,但多數電子產品根本不用管這件事。
- 第二是誰在問。 他當場自嘲說「我不時尚,但你(Harley)很時尚」,同一件衣服在兩個人眼中的分數完全不同。
- 第三是你人在哪裡。 米蘭現在流行的東西,跟加拿大渥太華流行的東西,是兩回事。

然後他說了這段(我照原始字幕引,因為每個字都重要):
「they are just not mathematical in the same way... concepts that exist only really in the human sphere... were not legible to computers in the traditional sense. But it turns out that now they kind of become that, because we are training these models truly on everything that humans have written up to this point... it can be turned into a matrix multiplication.」
意思是:這些概念過去只存在於人類的世界裡,電腦讀不懂。但現在它們正在變成電腦讀得懂的東西,因為這些模型是拿「人類到目前為止寫下來的一切」訓練的。所以品味、潮流、審美,最後可以被轉換成一次矩陣乘法。
我聽到這裡有點涼。
因為過去兩年,我在很多場合聽過同一句安慰:「AI 再強也學不走我的選品眼光。」
現在講這句話的人裡面,最有資格反駁的那個人,親口說它正在被轉成矩陣。
「我的品味 AI 學不走」是一張正在過期的護城河。
(這跟黃仁勳講的那句「模型是租來的,know-how 才是你的」其實是同一件事的兩面:你以為的 know-how,有多少已經被別人寫在網路上了?)
那什麼還沒過期?沒被寫下來的在地 know-how
回頭再讀 Tobi 那句話,重點其實不在「矩陣乘法」,在前面那半句:
模型學的是「人類到目前為止寫下來的一切」。
沒被寫下來的東西,模型很難穩定學到。
這是一句很好的消息,也是一句很壞的消息。
好消息是:台灣的在地脈絡,有一大塊還沒被寫進網路上。什麼是「台客風」跟「老錢風」的界線?為什麼同一件襯衫在台北東區叫 minimal、在台中一中街叫韓系、在台南的選物店會被說是日雜?這些判斷活在店員的腦袋裡、活在你跟熟客的 LINE 對話裡、活在你二十年的進貨直覺裡。
壞消息是:活在腦袋裡的東西,機器讀不到,AI 就當它不存在。
我做雨傘那七年,什麼角色都幹過,工廠業務、產品開發、百貨專櫃站櫃。站櫃那段最有感。同一支型號的傘,我在專櫃講的是「傘骨的開收手感」跟「布面的垂墜度」,換到夜市通路,講的是「一百塊三支、不會開花」。同一個 SKU,兩套完全不同的價值語言。
那兩套語言後來寫進系統了嗎?
沒有。它們留在我嘴巴裡,跟著我離職一起消失。
以前這叫「業務的個人本事」。現在這叫「沒被寫下來,所以 AI 找不到你」。
一個可以照抄的判準:買家到底在買什麼?
講到這裡你可能會問:那我到底要寫什麼?寫多細?
Shopify 在另一篇工程文章 Clustering billions of products for agentic commerce with Catalog API(2026-06-17)裡,給了一個我覺得台灣賣家可以直接拿去用的規則。
他們要解決的問題很實際:同一款乳清蛋白,A 商家開一筆商品,B 商家開了十二筆,AI 購物代理得知道這些是同一個東西,才有辦法比較。所以他們要把跨商家的商品收斂成同一個識別碼(UPI,Universal Product Identifier)。
判準只有一句話:
「What is the buyer primarily purchasing this product for? If an attribute does not change the answer, it is a variant. If it does change the answer, it is part of the product identity.」
買家買這個商品,主要是為了什麼?如果某個屬性不會改變這個答案,它就是「變體」;如果會改變答案,它就是「商品身分」的一部分。
他們自己舉的例子:乳清蛋白的口味是變體(你買的是蛋白質),油漆的顏色是商品身分(你買的就是那個顏色)。

我把它套回雨傘試試看:
黑色跟藏青色,是變體。你買傘是為了遮雨,顏色不改變這件事。
但「抗 UV 遮陽傘」跟「大傘面高爾夫傘」,是兩個不同的商品身分。一個買的是不曬黑,一個買的是不淋濕,買家的動機完全不同。
過去我們把這兩支都丟在「雨傘」分類底下,加個標籤了事。
在 AI 幫消費者比價的世界裡,這種偷懶會大幅降低你被正確比對到的機率。
為什麼他們願意花這種力氣?諾曼門與第一性原理
Harley 後段問了一個看似離題的問題:為什麼你這麼討厭「諾曼門」(Norman doors,那種你永遠猜不到該推還是該拉的爛設計門)?
Tobi 的回答是,門沒有資格讓人覺得自己很笨。他在談話中說,自己曾經下令把所有辦公室的諾曼門換掉。理由很簡單:團隊每天泡在一個品質低於標準的環境裡,你很難要求他們做出高於那個標準的軟體。(同一套「細節不將就」的邏輯也長出了他們的內部系統 River,我寫過那一篇,這邊不展開。)
但他真正的重點在後面。他說人追求獨立(independence)是為了取得主權(sovereignty),而主權只給你一樣東西:做出「不一樣」的選擇的能力,而不是被路徑依賴牽著走。
然後他丟出一個問句:
「Did you come to this position from first principles or out of convenience?」
你走到今天這個做法,是從第一性原理想過的,還是因為那樣比較方便?
這句話比整篇 Catalog 的技術細節都值錢。
你的商品資料現在長那樣,是你想過的結果,還是後台預設欄位長那樣、你就跟著那樣填?
所以你明天可以做什麼
Catalog 目前是開給開發者的 API,Shopify 講明了不打算把它做成一個產品(Tobi 的說法是「這不是我們的工作」,他們要生態系自己去長出應用)。所以以下建議跟你有沒有用 Shopify 沒關係,這是一套資料衛生習慣:
► 把「買家到底在買什麼」當成分類的第一個問題。 拿你賣最好的十件商品,逐件問一次:這個屬性會不會改變買家的購買動機?不會就是變體,會就該獨立成商品。光這一輪你就會發現後台有一堆分類是當初隨手建的。
► 去把規格從圖片裡搬出來。 這是我看台灣商家資料時最常見的問題:材質、尺寸、產地、適用場合,全部做在商品描述的圖片上。人看得到,機器看不到。AI 讀不到的規格,等於不存在(這件事我在零售商的數據基礎建設那篇講過更完整的版本)。
► 把你腦袋裡的在地脈絡寫成欄位。 先開這五欄:適用場合、風格標籤、適合身形、搭配建議、不適合誰。這些你講得出口卻從沒寫進系統的東西,現在是你少數還沒被矩陣化的資產。寫下來它是資產,不寫它是離職就帶走的空氣。
► 同一件商品,在蝦皮、momo、官網三個地方的寫法要能對得起來。 不用一模一樣,但品牌、型號、材質、主規格、用途這幾個核心欄位要一致。AI 代理在跨平台比對時,對不起來的那一個更容易被判成不同商品,或被當成低信心資料。
► 每季挑一次搜尋詞做健檢,而且要有產出物。 打開你的站內搜尋報表,把「零結果」的關鍵字整理成一張清單,逐一補同義詞、標籤或商品資料。那張清單就是你的商品資料跟真實消費者語言之間的落差表。
如果你問我,這波真正的分水嶺不在誰家的 AI 比較聰明。
在於當機器開始有能力理解「說不清楚的東西」的時候,你有沒有把說不清楚的東西寫下來。
品味正在被規格化,這件事擋不住。但規格化需要原料,而那個原料,只能從還記得為什麼這樣選品的人身上拿。
那個人是你。趁模型還沒學會之前,先寫下來。
商品搜尋引擎常見問題 FAQ
商品搜尋為什麼不能直接用 Google 那一套?
因為零售搜尋要的是「成交」,網頁搜尋要的是「相關」。你在 Google 找到答案就可以關掉分頁,它的任務就結束了;但零售搜尋的每一個結果都可能變成一筆訂單。Shopify 工程部落格寫得很直接:Commerce search optimizes for conversion。要補一句的是,Shopify 並沒有把資訊檢索丟掉,他們的排序流程是古典資訊檢索加上機器學習,自建的主要理由是現成引擎要撐住他們的規模得整個重做架構。
商品搜尋優化該從哪一步開始?
先問「買家到底在買什麼」,再回頭重整你的分類跟變體。Shopify 在 Catalog API 的商品分群邏輯裡給了一個可以照抄的判準:某個屬性如果不會改變「買家為什麼買這個商品」的答案,它就是變體;會改變答案的,才屬於商品身分。拿你賣最好的十件商品逐件跑一次這個問題,通常就會發現後台有一堆分類是當初隨手建的。
為什麼 AI 讀不到我的商品脈絡?
因為那些脈絡只留在你腦袋裡,或是被做進商品圖片裡了。模型學得到的是「人類寫下來的東西」,材質、尺寸、適用場合、適合身形這些資訊如果只存在於商品描述的圖上,人看得到、機器看不到,對 AI 來說等於不存在。把它們從圖片搬進可讀的欄位,是現在最直接的補救動作。
資料來源
- Fireside Chat with Tobi Lütke & Harley Finkelstein|Shopify DotDev 2026(2026-07-28)。文中英文引述皆取自該場影片的原始英文字幕,中文為筆者翻譯。
- Building world-class product search at Shopify,Shopify Engineering,2025-11-12
- Clustering billions of products for agentic commerce with Catalog API,Shopify Engineering,2026-06-17
- Google Autocomplete 台灣區(hl=zh-TW、gl=tw)關鍵字建議,筆者於 2026-07-29 實測抓取
需要說明的地方:Tobi Lütke 與 Harley Finkelstein 是 Shopify 的創辦人與總裁,上述談話帶有自家產品的宣傳性質。「用 C++ 從零打造」「能理解時尚與脈絡」都是他們自己的描述,Catalog 的實際成效目前沒有第三方公開驗證,本文不主張它比現有方案更好用。文中特別把工程部落格與台上說法的出入標示出來,就是希望你自己判斷。
延伸閱讀
- 想看 Tobi 在別場對談講的經營觀:Shopify 創辦人 Tobi Lütke 最新對談:AI 時代電商經營的 5 個核心思維
- 想知道 AI 代理實際上怎麼「找到」你的商品:Shopify UCP-CLI 解碼:AI agent 購物協定上線
- 想從更大的角度看「被看見」這件事:AI 時代,把產品做好已經不是護城河
協作聲明與免責
這篇文章由王董與 AI 一起整理製作完成。文中引用的第三方資料、研究或工具都會標註來源名稱;若原始出處有公開連結,會以 [來源名稱](URL) 形式附上,方便你進一步查找。若文中內容與原始出處有任何出入,請以原文為準。
內容僅供參考與學習交流,不構成任何專業、商業或投資建議,請依自身情況判斷並自行承擔行動風險。文中提及的工具功能、數據與平台政策可能隨時間異動,請以各官方最新公告為準。