我做數據的索引在我IRE(信息檢索和提取)過程。現在,不是將索引存儲在索引中,而是存儲termID,這是與該術語對應的映射。如果術語的長度是15,術語的大小將是15個字節,即120個比特,而如果我使用termID而不是術語,那麼我可以將它存儲在少於120個比特中。其中一種可能的方法是維護termID從1..n其中n是術語數量的(術語,術語ID)字典。這種方法的問題是:地圖字號碼
- 我必須在ram中保留這本字典,並且字典大小可以以GB爲單位。
- 要找到對應於一個術語termID,它會採取爲O(log(n))的其中n是字典中的項數。
我可以做一些函數,它將一個詞作爲輸入並返回O(1)中的映射(加密)?如果有一些衝突是好的(只是猜測,在速度和內存交換一些碰撞是一個很好的權衡。順便說一句,我不知道會有多大影響我的搜索結果)。
是否有其他更好的方式來做到這一點?