+ mapM_ (updateIndex sto newRev) (S.toList pages)
+
+
+updateIndex :: Storage -> RevNum -> PageName -> IO ()
+updateIndex sto rev name
+ = do pageM <- getPage sto name (Just rev)
+ case pageM of
+ -- ページが削除された
+ Nothing
+ -> do docIdM <- getDocIdByURI (stoIndexDB sto) (mkRakkaURI name)
+ case docIdM of
+ Nothing -> return ()
+ Just docId -> do removeDocument (stoIndexDB sto) docId [CleaningRemove]
+ infoM logger ("Removed page " ++ name ++ " from the index")
+ Just page
+ -> do draft <- stoMakeDraft sto page
+ putDocument (stoIndexDB sto) draft [CleaningPut]
+ infoM logger ("Indexed page " ++ name ++ " of revision " ++ show (pageRevision page))