天天看點

SolrQuery挖掘--單次元聚合分析單次元聚合分析單次元聚合關鍵問題單次元聚合實作樣例

<a></a>

單次元聚合分析應該是各種分析統計中最為簡單、直接。

對于主動搜尋、被動搜尋一體的應用場景,有登入和無登陸等統一兼顧。并且提供接口服務,按需傳回次元資訊,并且可以複用。

無疑采取搜尋引擎,依賴搜尋引擎的facet統計功能,最為直接、快捷、有效、低沉本。前提是對搜尋引擎比較熟悉,否則光一個

搜尋引擎就折騰死人了。

單次元分析意義主要在掌握資料屬性、使用者屬性、熱點發現。

例如:某個産品上某個使用者一段時間搜尋詞聚合,然後對聚合詞語義分析,将可以分析出該使用者的某些曆史偏好、行為特征、消費

傾向、社群角色等。

例如:一段時間内産品上使用者在搜什麼,那些是熱點詞,是否與營運活動相關,是否是産品的重點詞範疇等。

例如:将關鍵詞、時間、産品倒排起來,那麼就可以知道任何時間段内,具體産品活躍的關鍵詞分布,間接知曉産品的“語義集合”

例如:将關鍵詞、使用者、時間倒排起來,那麼很容易知曉那些詞偏女性、那些詞偏男性、那些詞中性,使用者那個時候搜的多、是那些詞

例如:将關鍵詞、排序、翻頁、命中倒排起來,那麼很容易發現點選熱點、逾時分析等。

。。。。

太多了

大家都關注結果去了,沒有人喜歡過程,尤其是周期性、長期的過程。在淘寶上成交量、客單價為主題的大環境,任何和交易不相關

、任何不能直接影響交易、任何隻是提升使用者細微體驗等等工作,都是一個“弱勢”需求,甚至等于不是需求。

是以,技術即使實作,也不見得有人會關注、有人去用。kpi中不會因為使用者體驗而打分,kpi中不會因為改善排序效果而肯定。

因為本身這些不好評估效果,特别是短期内的效果。更本質的可能是這些“無關交易”!

既然是單次元聚合,那麼次元的選擇就非常重要了。這個需要不是技術一方面說的算,更多的依賴業務。

而往往習慣了營運為主、人肉、經驗為主的 淘寶居多業務,對交易之位的屬性關注度明顯的不在意。

也甚至出現,計算出來的結果會在 白名單、黑名單過濾下,面目全非。

通常基本的次元不可少:時間、業務、人、關鍵詞等。也即時間、地點、人物、事件。

輸入就是線上日志,輸出就是格式化文檔或者反向索引結構。

在輸入和輸出之間就是轉換。轉換的過程其實非常麻煩的問題,隻看一端隻覺得問題很easy!

麻煩之處:

(1)提取規則

日志總是有許多莫名其妙的格式、内容、亂碼。很難有一個100%的規則,滿足所有請求日志。

即使有,也很難很容易的擴充到其他應用。例如solr 日志格式是有規律的,但是使用者内容不一定有規律。

基于文本标簽提取,自然會遇到内容的标簽問題。提取完畢之後,schema結構具體應用是不一樣的。

(2)提取速度

越精細越耗時,并且java string對象處理起來比較友善,卻速度上遠遠低于char,而char處理不是很友善。

對應solr query log 還是建議采取char為主、stringbuidler為核心變量。

(3)适應性

一開始都是追求100%解析通過,實際總有那麼一些内容,攪合正常處理方法。為了适應這些非正常的請求,

往往會将之前的處理規則打破或者添加更多條件,然後整體性能突然下降。建議:能處理的快速處理,不能處理的

單獨輸入到一個文本,對于這些非正常的特殊處理。

對于終搜 solr 日志

輸入 2012-08-09 14:50:33,396 info [org.apache.solr.core.solrcore] - [search4product-0]

webapp=null path=/select params={q=+supplier_id%

3a649289&amp;amp;sort=weight1+desc&amp;amp;rows=30&amp;amp;start=0&amp;amp;facet=true

&amp;amp;facet.field=cat_path&amp;amp;hl.usephrasehighlighter=false&amp;amp;echoparams=explicit&amp;amp;hl=true

&amp;amp;hl.fl=title&amp;amp;hl.requirefieldmatch=true&amp;amp;hl.simple.pre=&lt;em&gt;

&amp;amp;hl.simple.post=&lt;/em&gt;&amp;amp;hl.snippets=3&amp;amp;hl.fragsize=2000&amp;amp;timeallowed=2500}

hits=1762 status=0 qtime=123

解碼

2012-08-09 14:50:33,396 info [org.apache.solr.core.solrcore] - [search4product-0]

webapp=null path=/select params={q=+supplier_id:649289&amp;amp;sort=weight1

desc&amp;amp;rows=30&amp;amp;start=0&amp;amp;facet=true&amp;amp;facet.field=cat_path&amp;amp;hl.usephrasehighlighter=false

&amp;amp;echoparams=explicit&amp;amp;hl=true&amp;amp;hl.fl=title&amp;amp;hl.requirefieldmatch=true&amp;amp;hl.simple.pre=&lt;em&gt;

提取輸出 2012-08-09t14:50:33z#&amp;amp;search4product-0#&amp;amp;supplier_id:649289#&amp;amp;sort:weight1 desc#&amp;amp;hits:1762#&amp;amp;qtime:123

建構solr document

繼續閱讀