這是我的用例:我應該多長時間將文檔上傳到CloudSearch(Solr)?
我使用MySQL作爲我的主數據存儲和CloudSearch進行搜索。該數據庫包含表:線程,評論,upvotes,用戶。
我使用upvotes和created_at date(Hacker News Hot算法)創建了一個基於「趨勢」對搜索結果進行排序的表達式。這個表達式稱爲「潮流」,並在CloudSearch查詢中使用這樣的:/search?q=Superman&sort=trend+desc
(upotes-1)/pow(floor((_time-created_at)/3600000)+2, 1.8)
現在,當用戶upvotes一個線程或評論,它存儲在MySQL數據庫。我的問題我應該如何保持雲端搜索與CloudSearch同步?
兩個選項我看到:
- 立即插入(替換)在MySQL的給予好評,然後更新CloudSearch比分。這涉及每次upvote發送單個文檔上傳,但確保實時準確性。
- 立即在MySQL中插入(取代)upvote,然後將upvote放在緩存的某處(Redis?)。每小時一次,將所有upvotes上傳到CloudSearch。
處理這種情況的最佳方法是什麼?
這給了我一個相當好的答案。我會選擇1並按照建議進行壓力測試。如果事情發展到南方,我會用基準回到這裏。 –
基準測試如何? –