我有一個存儲項目(例如web文檔)的應用程序。每個項目可以包含任意大量的標籤。典型的常見查詢是使用給定的標籤集檢索所有文檔。那麼,一個很常見的Web應用程序。NoSQL:索引和基於關鍵字的搜索
現在我正在考慮將NoSQL數據庫作爲持久存儲。各種NoSQL系統(例如MongoDB)支持輔助索引和基於關鍵字的搜索。顯示如何在不同系統中執行操作的示例很容易找到。問題是,我想知道「底層」中發生了什麼,即二級索引如何/在哪裏存儲,以及如何實際執行帶有一列標記的查詢。特別是在有許多節點的系統中。
我知道基於Map/Reduce或類似的解決方案。但在這裏我很感興趣的索引工作。例如,我有的問題是:
- 輔助索引是否僅存儲項目/對象ID或更多?
- 如果一個查詢包含k個標籤,是否有k個子查詢 - 每個標籤一個 - 執行並且k個部分結果合併成一個起始節點?
哪裏可以找到不同NoSQL系統的這種信息?非常感謝任何提示。
基督教
嗨泰勒,感謝您的回覆和鏈接。演示文稿確實很有趣,也許有點太內部:)。我現在發現的是(至少)MongoDB爲索引應用了基於文檔的分區,即每個節點/分片/?維持它自己的本地索引。多條查詢然後被髮送到所有(?)節點並在本地處理。 (在我的第二個問題中描述的替代方法更適用於全局索引,即索引的基於術語的分區)。基督教再次感謝您的幫助 – Christian 2011-12-29 08:58:27