我們有如下設置(簡體/更改):從多個列表搜索與elasticsearch
MongoDB的集合: 文章
Redis的列表: 今天 昨天 這 本週月
我們經常收到新的文章,並將它們放在適當的列表中(一篇新文章將進入'今天''本週'和'本月'[redis列表包含id到mongodb集合])。
這些列表可以包含很多項目('本月'達到數百萬)。 這些列表經常變化,文章消失並重新出現(業務邏輯)。
這些列表必須是可搜索的(+ beyonce -rihanna,如果你想閱讀關於碧昂斯的新聞,但不是關於蕾哈娜)。我們的第一個實現(當列表很小時)是簡單地索引Elastic中的整個Articles集合,並在搜索特定的列表時,我們使用關鍵字(+ beyonce -rihanna)和包含在列表中的所有id來查詢彈性。這工作了幾千條,但正如預期的那樣,它不能很好地擴展。
目前,我們已經想到的2種方法來處理這個問題:
- 當索引一個新的第(彈性),我們引用的所有名單 它是那麼查詢特定列表物品時。我們的查詢 包含關鍵字(+ beyonce -rihanna)和我們從(昨天)查詢 的列表。
- 在Elastic中創建多個索引(每個redis列表1個)。查詢文章時,我們只需指定索引和關鍵字。
以上兩種方式都適合嗎?或者我們應該以不同的方式處理這個案子