妥善建立索引可提升資料庫的讀取效能。在 MongoDB 的 CLI 當中可使用下列指令建立索引。
# 建立排序規則為 ASC 的索引
db.collection_name.createIndex({field: 1})
# 建立排序規則為 DESC 的索引
db.collection_name.createIndex({field: -1})
文本索引
上述指令可建立一般索引。如果建立索引的目的是提升查找文本(text)的效能,
則可考慮建立文本索引(Text Index),指令如下:
# 透過文本索引讀取資料
db.collection_name.find({$text: {$search: "string"}})
Stem 與 Stop Words
以英文句子「I am running in the park」為例,
am、the 等單獨存在時無法表達有實際意義的詞彙稱為 Stop Words(停用詞)。
文本索引主要參考 Stop Words 以外的詞與構成,而非儲存資料當中的一字一句。
根據文本索引篩選資料時,篩選的依據是傳入 Filter 當中的詞幹(Stem)。
以 running 為例,其詞幹為 run,而 runs 也可能被視為相同的詞幹。
總而言之,善用停用詞與詞幹的特性,都是有助於節省儲存空間或計算資源的方法。