2010-11-19 28 views
1

如果您訪問newegg.com(僅舉一例),您會在瀏覽產品時注意到,您可以看到產品屬性旁邊的項目數左側邊欄。如何獲取每個產品屬性/過濾器的總數如newegg

在某些項目上有如此多的屬性以及產品過濾器的許多不同配置,他們如何快速計算所有這些總計?

回答

2

對於newegg.com,他們使用的是由endeca

在概括地說提供了一種面導航技術,的Endeca將實際從任何數據庫(使用XML/CSV提供的數據,或直接檢索數據不僅限於MySQL的),並計算出相似度和組的結果爲自己的格式

的Endeca是不是免費的,開源的替代方案,例如sphinxlucene solr

+0

感謝您的回答。我想他們不直接查詢數據庫。我之前使用過獅身人面像,但是我仍然無法看到它們是如何在不查詢每個請求的任務100(任意估計)時間的情況下執行的。我錯過了什麼? – 2010-11-19 06:41:55

+0

獅身人面像是快速的全文,在分面搜索方面是可能的,但需要更多的配置和測試。你可能會把所有的方面都看作是mysql中的一個GROUP,而sphinx會很快地做到這一點。 – ajreal 2010-11-19 06:48:17

+0

因此,如果我理解正確,他們會在每個屬性集上運行GROUP BY,並使用聚合計數函數來獲取每個屬性中的產品數量? – 2010-11-19 06:57:53

0

你不知道,他們計算出他們快。你只知道他們渲染得很快。他們可能花費數小時計算這些總計並渲染其頁面,緩存結果併爲這些靜態文件提供服務,直到他們想要刷新數據爲止。

+0

我會買這個(而且很可能是這樣),但magento具有相同的功能,所以我認爲它是實時發生的事情(或至少實時在頁面被緩存的時間點)。 – 2010-11-19 06:45:15

+0

不幸的是,他們對endeca執行實時查詢。再次,endeca不是免費的。 – ajreal 2010-11-19 06:51:04

+0

這就是重點。 Newegg只是一個例子。我指出購買Endeca不是唯一能夠快速呈現複雜內容的方法 - 您可以慢慢計算並緩存結果。 – 2010-11-19 09:15:06

1

Newegg使用Endeca,他們可能是Endeca的早期客戶之一。回想起來,Endeca可能是他們成功的重要貢獻者。分面導航在計算機部件等複雜電子設備上運行良好。

有在面導航需要考慮幾件事情:

1)您是否想在類驅動的查詢只是面導航,或者你也希望它在搜索工作?實際上,類別是各種層次的層面。

2)Solr的非歸一化倒排索引模型是否會給您帶來問題?

如果對1)的答案是真的 - 可能是 - 你需要一些倒排索引。倒數索引是進行關鍵字搜索的唯一方法。他們也會面對一些警告。

從本質上講,您可以將每個方面視爲倒排索引(實際上,關鍵字搜索可能被認爲是具有排名功能的特殊方面)。然後做計數你必須相交/和當前查詢和過濾器與所有其他facet值。但是,如果需要表示稀疏產品集(參見2),則此模型可能會導致問題。

如果對2)的回答是正確的,那麼可以更多地從OLAP的角度考慮方面。我不知道倒排指數是否可以在沒有抽象的情況下處理複雜的關係。

將分面搜索/導航作爲整體文本(通常作爲倒排索引實現)和/或OLAP的混合來考慮和實施是公平的。

我敢肯定,你可以利用專欄商店取消排版,但如果你想要關鍵字搜索,你仍然需要有一個倒排索引供您合併。

@丹·格羅斯曼:

這似乎如此,但 -

你有沒有想一想有多少組合有面的?你不能像這樣緩存那麼多頁面。 Newegg可能有更多的組合。com比你的天空中的星星。

添加多個選項,它更糟糕。遊戲結束。

您只能緩存一些像未過濾和通常過濾的情況。如果你試圖在不限制遞歸級別的情況下蜘蛛Newegg.com,你會殺死蜘蛛。出於這個原因,分面網站一般會給搜索引擎帶來問題。請參閱http://www.searchmarketingstandard.com/facets-navigational-seo-powerhouse-part

+0

優秀的破敗。謝謝。 – 2011-01-21 17:39:57

相關問題