2012-10-25 26 views
2

我正在開發一個項目,其中有200萬種產品,並有50個客戶使用不同的定價方案。索引2M X 50記錄目前不是一種選擇。我看過solr join,無法按照我想要的方式工作。我知道這就像一個自我加入,所以我有點懷疑它會起作用,但無論如何它在這裏。Solr加入 - 從不同索引獲取數據

這裏是示例模式

CORE0 - 產品 核1 - 客戶端

所以給客戶端ID,我想顯示由新秀麗的最低價格排列製造的所有包裝袋。

如果有更好的方法來解決這個問題,我願意重新設計令人興奮的模式。

預先感謝您。

+0

我不明白你的用例。客戶在這種情況下如何與產品相關?聽起來對我來說,我會說忘記客戶端ID,然後執行搜索:q =「manufacturer:Samsonite」sort =「price asc」 – femtoRgon

+0

客戶端必須登錄才能搜索產品,因此對於包X通常售價10美元,客戶A的價格可以是9美元,客戶B可以是9.50美元。我不能只使用默認價格進行搜索,因爲這會在搜索按最低/最高價格排序的情況下產生影響 – Jose

回答

1

Solr不是關係型數據庫。您應該查看sharding功能並拆分索引。此外,您可以編寫自定義插件來詳細說明基於客戶端ID /名稱/索引時間的任何價格數據(BAD您仍將獲得針對每個客戶端複製的產品)。

我們怎麼做(這樣你就可以得到一個例子):

  • 客戶被sqlite的
  • 產品處理存儲在Solr的與他們的「基地」價格
  • 每個客戶都有一個「定價規則「應用通過自定義查詢處理程序時,他們詢問數據庫(它只是一個值修飾)