我有一個簡單的現實生活問題,我想用OO方法解決。 我的硬盤很混亂。我有1.500.000個文件,重複,完整的重複文件夾,等等......使用多個標準對物品進行分組的最佳通用策略
第一步,當然是解析所有的文件到我的數據庫。到目前爲止沒有問題,現在我得到了很多很好的條目,這是「自然分組」。可以用簡單的查詢等來獲得這個簡單的分組例子:
- 給我的所有文件大於100MB大
- 顯示所有文件年長超過3天
- 獲取我的docx結尾的所有文件
但現在假設我想找到一些更具自然意義的羣體。這有不同的策略,取決於「用例」。
假設我有一個壞習慣,首先將所有下載的文件放在桌面上。然後我將它們解壓縮到適當的文件夾,而不是始終刪除ZIP文件。我將它們移動到「閣樓」文件夾中。對於系統來說,要找到這組文件時間導向搜索的方法,可能結合「檢查ZIP是否相同,然後文件夾X」將是合適的。
假設複製文件,有一些文件夾,其中「乾淨文件」都位於好的結構的另外一種壞習慣,而另一個雜亂的文件夾。現在我的乾淨的文件夾有20個圖片庫,我的雜亂的文件夾有5個重複和1個新的畫廊。一個用戶可以很容易地通過看到「哦,這些都是重複的,這是一個新的,所以我把新的一個放在乾淨的文件夾中,並且垃圾所有重複」來識別這個邏輯。
所以,現在進入正題:
的策略或模式的組合,你會使用哪一種解決這種情況。如果我連鎖過濾器「最難」會贏,我不知道如何讓系統「測試」適當的組合。它對我來說似乎不僅僅是過濾。它通過結合多個標準來查找「最佳」組的動態分組。
一個非常粗略的方法是這樣的:
- 在開始的時候,所有的文件都是平等的
- 第一,不那麼「好」組是目錄
- 如果你是一個大的,乾淨的目錄,你賺取積分(均勻分佈名稱)
- 如果所有文件具有相同的創建日期,您可能會「自動創建」
- 如果您是Program-Files的子項目,我不在乎您全部爲
- 如果我招你,A組爲C組,這將提高「熵」
什麼是最好的方式擬合這種情況。策略,過濾器和管道,「分組」..歡迎任何評論!
編輯在reacation到答案:
的標記方法: 當然,標籤越過我的腦海。但我在哪裏畫線。我可以創建不同的標籤類型,如InDirTag,CreatedOnDayXTag,TopicZTag,AuthorPTag。這些標籤可以構造成一個分層次的,但如何分組的問題將保持。但我會給這個想法,並在這裏添加我的見解。
拖延評論: 是的,聽起來是這樣的。但這些文件只是我能想到的最簡單的例子(而且目前最相關)。它實際上是以動態方式對相關數據進行分組的大圖。也許我應該保持它更抽象,強調這一點:我不搜索文件標記工具或搜索引擎,,但算法或模式來解決這個問題......(或更好的,想法像標籤)
克里斯
感謝媽媽;)開玩笑 - 強硬的愛也是一件好事! – 2008-10-05 13:46:43