diff --git a/nouveau/README.md b/nouveau/README.md
index e0c9636..86b1914 100644
--- a/nouveau/README.md
+++ b/nouveau/README.md
@@ -49,7 +49,7 @@
 
 `make`
 
-Run Nouvea with;
+Run Nouveau with;
 
 `dev/run --admin=foo:bar --with-nouveau`
 
@@ -87,7 +87,7 @@
 This will cause Nouveau to build indexes for each copy (N) and each
 shard range (Q) and then perform a search and return the results. Lots
 of query syntax is working as is sorting on strings and numbers
-(`sort=["fieldnamehere&lt;string&gt;"] or sort=["fieldnamehere&lt;number&gt;"],
+(`sort=["fieldnamehere&lt;string&gt;"] or sort=["fieldnamehere&lt;number&gt;"`],
 defaulting to number).
 
 Facet support
diff --git a/nouveau/TODO b/nouveau/TODO
index 4e81404..f43343a 100644
--- a/nouveau/TODO
+++ b/nouveau/TODO
@@ -1,27 +1,8 @@
 targeted dreyfus feature parity
 
-* pagination (bookmark I guess)
-* grouping
-* faceting
-* partitioned db support
-* ken integration
-* delete indexes on db deletion
+* partitioned db support (partially done)
 
 not targeted
 
-* stale=ok
 * highlighting
 * drilldown
-
-After reaching dreyfus parity, nouveau will diverge;
-
-* no javascript eval
-* ddoc will require an index schema, mapping couchdb document fields to lucene fields
-* spatial-extras and spatial3d support
-
-interim ideas
-
-* append type to field name, so `index("foo", 12.0")` becomes `new DoublePoint("foo<number>", 12.0)`
-* set a special Map to setPointsConfigMap() which examines that suffix and returns a PointsConfig for <number>
-
-* in nouveau branch of couchdb, remove dreyfus entirely and put nouveau at _search_analyze, _search, 
\ No newline at end of file
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
index e0d0ea6..ddc7c3f 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
@@ -105,7 +105,7 @@
                         scheduler.execute(() -> {
                             if (index.tryAcquire()) {
                                 try {
-                                    LOGGER.info("committing {}", name);
+                                    LOGGER.debug("committing {}", name);
                                     try {
                                         index.commit();
                                     } catch (final IOException e) {
@@ -301,7 +301,7 @@
                     if (index.tryAcquire()) {
                         try {
                             if (!index.isDeleteOnClose() && index.commit()) {
-                                LOGGER.info("committed {} before close", name);
+                                LOGGER.debug("committed {} before close", name);
                             }
                         } finally {
                             index.release();
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java
index 8f9e26c..4273582 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java
@@ -16,6 +16,7 @@
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.couchdb.nouveau.api.DocumentDeleteRequest;
 import org.apache.couchdb.nouveau.api.DocumentUpdateRequest;
@@ -64,8 +65,8 @@
     private final SearcherFactory searcherFactory;
 
     public IndexResource(final IndexManager indexManager, final SearcherFactory searcherFactory) {
-        this.indexManager = indexManager;
-        this.searcherFactory = searcherFactory;
+        this.indexManager = Objects.requireNonNull(indexManager);
+        this.searcherFactory = Objects.requireNonNull(searcherFactory);
     }
 
     @PUT
diff --git a/rel/overlay/etc/default.ini b/rel/overlay/etc/default.ini
index ede5e84..14b2a53 100644
--- a/rel/overlay/etc/default.ini
+++ b/rel/overlay/etc/default.ini
@@ -809,7 +809,7 @@
 ; The name and location of the Clouseau Java service required to
 ; enable Search functionality.
 ;name = clouseau@127.0.0.1
-name={{clouseau_name}}
+name = {{clouseau_name}}
 
 ; CouchDB will try to re-connect to Clouseau using a bounded
 ; exponential backoff with the following number of iterations.
diff --git a/src/chttpd/src/chttpd.erl b/src/chttpd/src/chttpd.erl
index b308061..7223ce4 100644
--- a/src/chttpd/src/chttpd.erl
+++ b/src/chttpd/src/chttpd.erl
@@ -1129,7 +1129,7 @@
         "request due to overloading or maintenance mode."
     >>};
 error_info({internal_server_error, Reason}) ->
-    {500, <<"internal server error">>, Reason};
+    {500, <<"internal_server_error">>, Reason};
 error_info(not_implemented) ->
     {501, <<"not_implemented">>, <<"this feature is not yet implemented">>};
 error_info(timeout) ->
diff --git a/src/nouveau/src/nouveau_api.erl b/src/nouveau/src/nouveau_api.erl
index 99139a9..5bf6b17 100644
--- a/src/nouveau/src/nouveau_api.erl
+++ b/src/nouveau/src/nouveau_api.erl
@@ -35,7 +35,7 @@
 ->
     ReqBody = {[{<<"text">>, Text}, {<<"analyzer">>, Analyzer}]},
     Resp = send_if_enabled(
-        io_lib:format("~s/analyze", [nouveau_util:nouveau_url()]),
+        nouveau_util:nouveau_url() ++ "/analyze",
         [?JSON_CONTENT_TYPE],
         post,
         jiffy:encode(ReqBody)
diff --git a/src/nouveau/src/nouveau_bookmark.erl b/src/nouveau/src/nouveau_bookmark.erl
index 0721d5a..b919534 100644
--- a/src/nouveau/src/nouveau_bookmark.erl
+++ b/src/nouveau/src/nouveau_bookmark.erl
@@ -28,10 +28,10 @@
 update(DbName, {EJson}, SearchResults) when is_list(EJson) ->
     update(DbName, from_ejson({EJson}), SearchResults);
 update(DbName, PreviousBookmark, SearchResults) when is_map(PreviousBookmark) ->
-    Hits = maps:get(<<"hits">>, SearchResults),
+    #{<<"hits">> := Hits} = SearchResults,
     NewBookmark0 = lists:foldl(
-        fun(Hit, Acc) ->
-            maps:put(range_of(DbName, maps:get(<<"id">>, Hit)), maps:get(<<"order">>, Hit), Acc)
+        fun(#{<<"id">> := Id, <<"order">> := Order}, Acc) ->
+            Acc#{range_of(DbName, Id) => Order}
         end,
         new(),
         Hits
diff --git a/src/nouveau/src/nouveau_fabric_search.erl b/src/nouveau/src/nouveau_fabric_search.erl
index 6f428e8..2aeb502 100644
--- a/src/nouveau/src/nouveau_fabric_search.erl
+++ b/src/nouveau/src/nouveau_fabric_search.erl
@@ -37,8 +37,9 @@
 go(DbName, #doc{} = DDoc, IndexName, QueryArgs0) ->
     {ok, Index} = nouveau_util:design_doc_to_index(DbName, DDoc, IndexName),
     Shards = mem3:shards(DbName),
-    Bookmark = nouveau_bookmark:unpack(DbName, maps:get(bookmark, QueryArgs0)),
-    QueryArgs1 = maps:remove(bookmark, QueryArgs0),
+    {PackedBookmark, #{limit := Limit, sort := Sort} = QueryArgs1} =
+        maps:take(bookmark, QueryArgs0),
+    Bookmark = nouveau_bookmark:unpack(DbName, PackedBookmark),
     Counters0 = lists:map(
         fun(#shard{} = Shard) ->
             After = maps:get(Shard#shard.range, Bookmark, null),
@@ -54,13 +55,19 @@
     Workers = fabric_dict:fetch_keys(Counters),
     RexiMon = fabric_util:create_monitors(Workers),
     State = #state{
-        limit = maps:get(limit, QueryArgs0),
-        sort = maps:get(sort, QueryArgs0),
+        limit = Limit,
+        sort = Sort,
         counters = Counters,
         search_results = #{}
     },
     try
-        rexi_utils:recv(Workers, #shard.ref, fun handle_message/3, State, infinity, 1000 * 60 * 60)
+        rexi_utils:recv(
+          Workers,
+          #shard.ref,
+          fun handle_message/3,
+          State,
+          fabric_util:timeout("nouveau", "infinity"),
+          fabric_util:timeout("nouveau_permsg", "3600000"))
     of
         {ok, SearchResults} ->
             NewBookmark = nouveau_bookmark:update(DbName, Bookmark, SearchResults),
diff --git a/test/elixir/test/config/nouveau.elixir b/test/elixir/test/config/nouveau.elixir
index d22cf6f..90390a9 100644
--- a/test/elixir/test/config/nouveau.elixir
+++ b/test/elixir/test/config/nouveau.elixir
@@ -1,5 +1,7 @@
 %{
   "NouveauTest": [
+    "search analyze",
+    "search info",
     "search returns all items for GET",
     "search returns all items for POST",
     "search returns all items (paginated)",
diff --git a/test/elixir/test/nouveau_test.exs b/test/elixir/test/nouveau_test.exs
index 06fcc42..ee5d205 100644
--- a/test/elixir/test/nouveau_test.exs
+++ b/test/elixir/test/nouveau_test.exs
@@ -52,6 +52,35 @@
     bookmark
   end
 
+  test "search analyze", context do
+    url = "/_nouveau_analyze"
+    resp = Couch.post(url,
+      headers: ["Content-Type": "application/json"],
+      body: %{analyzer: "standard", text: "hello there"})
+    assert resp.status_code == 200, "error #{resp.status_code} #{:jiffy.encode(resp.body)}"
+    assert resp.body ==  %{"tokens" => ["hello", "there"]}
+  end
+
+  @tag :with_db
+  test "search info", context do
+    db_name = context[:db_name]
+    create_search_docs(db_name)
+    create_ddoc(db_name)
+
+    # query it so it builds
+    url = "/#{db_name}/_design/foo/_nouveau/bar"
+    resp = Couch.get(url, query: %{q: "*:*", include_docs: true})
+    assert resp.status_code == 200, "error #{resp.status_code} #{:jiffy.encode(resp.body)}"
+
+    url = "/#{db_name}/_design/foo/_nouveau_info/bar"
+    resp = Couch.get(url)
+    assert resp.status_code == 200, "error #{resp.status_code} #{:jiffy.encode(resp.body)}"
+    info = Map.get(resp.body, "search_index")
+    assert Map.get(info, "disk_size") > 0
+    assert Map.get(info, "num_docs") > 0
+    assert Map.get(info, "update_seq") > 0
+  end
+
   @tag :with_db
   test "search returns all items for GET", context do
     db_name = context[:db_name]
