Search
sequenceDiagram actor User participant Search participant Database User->>Search: 検索キーワード入力 Search->>Database: キーワードに基づく検索クエリ実行 Database-->>Search: 検索結果返送 Search->>User: 検索結果表示 User->>Search: 独自タグ付け Search->>Database: タグ情報保存 Database-->>Search: 保存完了通知 Search->>User: タグ付け完了表示
classDiagram class Search { -SearchEngine searchEngine -IndexManager indexManager -QueryProcessor queryProcessor -ResultDisplayManager resultDisplayManager +performSearch(query) +updateIndex(imageData) +addCustomTag(imageId, tag) +removeCustomTag(imageId, tag) } class SearchEngine { -IndexManager indexManager +search(query) -rankResults(results) } class IndexManager { -Map~string, IndexEntry~ index +addToIndex(imageData) +removeFromIndex(imageId) +updateIndexEntry(imageId, newData) } class IndexEntry { -string imageId -string filename -string caption -List~string~ customTags -Map~string, double~ vectorRepresentation } class QueryProcessor { +processQuery(rawQuery) -tokenizeQuery(query) -expandQuery(tokens) } class ResultDisplayManager { -List~SearchResult~ currentResults +displayResults(results) +sortResults(criteria) +filterResults(filters) } class SearchResult { -string imageId -double relevanceScore -string snippet } Search "1" *-- "1" SearchEngine Search "1" *-- "1" IndexManager Search "1" *-- "1" QueryProcessor Search "1" *-- "1" ResultDisplayManager SearchEngine "1" --> "1" IndexManager IndexManager "1" *-- "*" IndexEntry ResultDisplayManager "1" *-- "*" SearchResult