搜索詞維度的產(chǎn)品方案

目標(biāo)

目前搜索業(yè)務(wù)除了搜商品之外,我總結(jié)為都是輸入為query,輸出為根據(jù)query推薦的信息。比如"搜索導(dǎo)航"輸出的是一堆類目id和屬性id, "搜索提示"輸出的是query相關(guān)根據(jù)算法提供的score排序, "熱搜詞"輸出的是與query相關(guān)的熱門搜索, "你可能會搜產(chǎn)品"輸出的是對應(yīng)中心詞。這些產(chǎn)品可以統(tǒng)一成一張以query詞key,collum為算法輸出的query特征Hbase表。在這張表中,除了存儲一些算法數(shù)據(jù),還可以插入query維度的相關(guān)特征信息比如pv;uv;gmv等。 根據(jù)這張表, 我能很方便的管理算法的abtest功能,搜索詞的數(shù)據(jù)統(tǒng)計(jì)功能,所有搜索詞相關(guān)產(chǎn)品工程實(shí)現(xiàn)可以對接這張表,算法開發(fā)的搜索詞的基礎(chǔ)數(shù)據(jù)也可以接入這張表。

Hbase表設(shè)計(jì)如下

query ? 導(dǎo)航類目id ? 導(dǎo)航屬性id ?搜索提示算法score1 ? 搜索提示算法score2 ?相關(guān)搜索詞.......


衣服 ? ?10001 ? ? ? ? ? 10048 ? ? ? ? ? ? ?1.6 ? ? ? ? ? ? ? ? ? ? ? ?1.7 ? ? ? ? ? ? ? ? ? 冬季衣服 ,冬季女裝


褲子 ? ?10003 ? ? ? ? ? 10048 ? ? ? ? ? ? ?1.5 ? ? ? ? ? ? ? ? ? ? ? ?2.0 ? ? ? ? ? ? ? ? ? ? ? ....


包包 ? ?10006 ? ? ? ? ? ?10048 ? ? ? ? ? ? ?1.4 ? ? ? ? ? ? ? ? ? ? ? 2.1 ? ? ? ? ? ? ? ? ? ? ? ....

搜索相關(guān)算法產(chǎn)品的query為網(wǎng)站的歷史搜索詞, 可以通過添加列添加對應(yīng)的內(nèi)容。由于Hbase 面向列存儲的,可以橫向擴(kuò)展,只要有query維度的算法產(chǎn)品需求,我們可以添加一列,算法工程師可以把query對應(yīng)的值存在這個(gè)列中。這樣對于搜索業(yè)務(wù)開發(fā)取對應(yīng)的算法數(shù)據(jù)非常方便。在這個(gè)搜索詞特征表的基礎(chǔ)下,設(shè)想的算法出數(shù)據(jù),工程組裝數(shù)據(jù)并展示給用戶的流程如下:

為什么需要搜索詞特征表

以前接到搜索詞維度的需求是,都是算法產(chǎn)出的數(shù)據(jù)通過人肉的方法(熱搜詞推薦,xxx告訴我redis地址或者接口)給工程人員,獲取干脆工程人員自己維護(hù)一份算法數(shù)據(jù)(導(dǎo)航和搜索提示)。這樣的結(jié)果是,開發(fā)過程是非常高效的單兵作戰(zhàn), 但是后期有算法人員需要優(yōu)化的時(shí)候,就會研究整個(gè)具體的工程(比如svn up一個(gè)搜索提示的工程,然后開始debug),這樣并不適合快速算法更新迭代。假如采用上述的方式,算法開發(fā)只需要對接Hbase表, 根據(jù)對算法工程師的調(diào)研,他們產(chǎn)生最終算法數(shù)據(jù)生成一個(gè)文件給我,和把這些數(shù)據(jù)插入到Hbase的成本是一樣的。那么從搜索業(yè)務(wù)工程師的角度而言,只要了解算法產(chǎn)品對應(yīng)的Hbase列,那么導(dǎo)航、搜索提示等搜索詞維度工程的初始化操作也都是統(tǒng)一的,那就是從表中select某個(gè)列,然后開始處理。

搜索詞特征表其他功能

既然這張搜索詞特征表可以存儲算法數(shù)據(jù), 那也可以把計(jì)算搜索詞pv,uv,gmv看做一個(gè)“算法”,存儲搜索詞對應(yīng)的pv,uv,gmv等數(shù)據(jù), 接下來這張表的結(jié)構(gòu)可以演變成如下:

query 導(dǎo)類目id 導(dǎo)航屬性id 提示算法score1 提示算法score2 相關(guān)搜索詞 ? ?pv ? ?uv ? ? ?gmv


衣服 ? ?10001 ? ?10048 ? ? ? ?1.5 ? ? ? ? ? ? ? ? ? 1.6 ? ? ? ? ? ? ? ? 冬季衣服 ? ? ?112 ? 12 ? ? ?32


褲子? ? 10002 ? ?10001 ? ? ? ?1.7 ? ? ? ? ? ? ? ? ? 1.9 ? ? ? ? ? ? ? ? ....


包包? ? 10004? ? 10003 ? ? ? ?1.8 ? ? ? ? ? ? ? ? ? 2.1 ? ? ? ? ? ? ? ? ....

對于搜索詞的算法產(chǎn)品, 幾乎都需要搜索詞的pv,uv,gmv數(shù)據(jù)。 上一節(jié)提到算法開發(fā)可以很方便的輸出到搜索詞特征表, 那么我們把這些數(shù)據(jù)存在這張表, 算法工程師的輸入也可以來自這張表, 這對算法開發(fā)的工作也很有幫助。我了解到算法團(tuán)隊(duì)一般用spark跑算法數(shù)據(jù),這樣做的結(jié)果是spark工程中的輸入和輸出都是同一個(gè)地方,可以簡少代碼維護(hù)工作。這樣做的結(jié)果如下:

其他衍生功能

如果算法開發(fā)有abtest需求, 搜索詞工程(搜索提示,導(dǎo)航)處理之前可以獲取abtest配置信息,這個(gè)配置信息包括走哪個(gè)算法(對應(yīng)Hbase列),還包括打點(diǎn)信息(自定義參數(shù))。從kafka日志系統(tǒng)獲取這些打點(diǎn)數(shù)據(jù)分析后,可以計(jì)算出該搜索詞在該算法下的表現(xiàn)如何。這個(gè)表現(xiàn)結(jié)果還是插入到搜索詞特征表,那么算法的總體表現(xiàn)可以通過特征表畫出曲線圖看到算法結(jié)果。最終的搜索詞query產(chǎn)品的規(guī)劃如下:


希望有搜索業(yè)務(wù)的相關(guān)開發(fā)或者產(chǎn)品提出意見,針對query分析的相關(guān)業(yè)務(wù),如何有一個(gè)更好的方式統(tǒng)一起來。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容