            (reset! ended true)
            (check-all-done)))))
 
-(defn start-so-grepping [tag]
+(defn start-so-grepping []
   (let [mkdirp (.require js/window "mkdirp")
+        rimraf (.require js/window "rimraf")
         path (.require js/window "path")]
-    (.sync mkdirp (.join path (zest.docs.registry/get-so-root) tag))
+    (.sync rimraf (.join path (zest.docs.registry/get-so-root) "new_index"))
+    (.sync mkdirp (.join path (zest.docs.registry/get-so-root) "new_index"))
     (go (let [comments-size (async/<! (archive-size "Comments"))
               posts-size (async/<! (archive-size "Posts"))
               child-process (.require js/window "child_process")
               Lazy (.require js/window "lazy")
               Buffer (.-Buffer (.require js/window "buffer"))
               sogrep (.spawn child-process "sogrep"
-                             (array tag)
+                             (apply array @so-index-tags)
                              (js-obj "cwd"
                                      (.join path
-                                            (zest.docs.registry/get-so-root))))
+                                            (zest.docs.registry/get-so-root)
+                                            "new_index")))
               p7zip-posts (open-so-archive "Posts" "x")]
           (reset! so-indexing true)
           (.pipe (.-stdout p7zip-posts)

        check-all-done
        (fn []
          (if (and @ended (= @started @done))
            (.endWriting idx)))

        auf
        (fn [answer]

        LuceneIndex
        (.-LuceneIndex (.require js/window "../build/Release/nodelucene"))
        idx (LuceneIndex. (.join path (zest.docs.registry/get-so-root)
                                 "new_index" "lucene"))

        done (atom 0)
        started (atom 0)
