diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 8e69ce401a4f92f6f4390a405516369bc5503176..b990a901df28d3a1ffdfe68ec3fbb80c7bc50ab7 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,15 +2,8 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="ad75bb9b-12db-4cad-af64-4c68cecdb87b" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/commit-to-solr.js" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/config.json" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/fields.json" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/lib/CatalogSolr.js" beforeDir="false" afterPath="$PROJECT_DIR$/lib/CatalogSolr.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/test-data/fields.json" beforeDir="false" afterPath="$PROJECT_DIR$/test-data/fields.json" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/test/catalog.spec.js" beforeDir="false" afterPath="$PROJECT_DIR$/test/catalog.spec.js" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/commit-to-solr.js" beforeDir="false" afterPath="$PROJECT_DIR$/commit-to-solr.js" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/config.json" beforeDir="false" afterPath="$PROJECT_DIR$/config.json" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/.tmp/" />
     <ignored path="$PROJECT_DIR$/temp/" />
@@ -37,25 +30,25 @@
           <file pinned="false" current-in-tab="false">
             <entry file="file://$PROJECT_DIR$/commit-to-solr.js">
               <provider selected="true" editor-type-id="text-editor">
-                <state relative-caret-position="587">
-                  <caret line="137" column="31" lean-forward="true" selection-start-line="137" selection-start-column="31" selection-end-line="137" selection-end-column="31" />
+                <state relative-caret-position="300">
+                  <caret line="20" column="34" lean-forward="true" selection-start-line="20" selection-start-column="34" selection-end-line="20" selection-end-column="34" />
                 </state>
               </provider>
             </entry>
           </file>
-          <file pinned="false" current-in-tab="false">
+          <file pinned="false" current-in-tab="true">
             <entry file="file://$PROJECT_DIR$/config.json">
               <provider selected="true" editor-type-id="text-editor">
-                <state relative-caret-position="75">
-                  <caret line="5" column="18" selection-start-line="5" selection-start-column="18" selection-end-line="5" selection-end-column="18" />
+                <state relative-caret-position="105">
+                  <caret line="7" column="15" lean-forward="true" selection-start-line="7" selection-start-column="15" selection-end-line="7" selection-end-column="15" />
                 </state>
               </provider>
             </entry>
           </file>
-          <file pinned="false" current-in-tab="true">
+          <file pinned="false" current-in-tab="false">
             <entry file="file://$PROJECT_DIR$/lib/CatalogSolr.js">
               <provider selected="true" editor-type-id="text-editor">
-                <state relative-caret-position="245">
+                <state relative-caret-position="394">
                   <caret line="38" column="14" selection-start-line="38" selection-start-column="14" selection-end-line="38" selection-end-column="14" />
                 </state>
               </provider>
@@ -95,8 +88,8 @@
           <file pinned="false" current-in-tab="true">
             <entry file="file://$PROJECT_DIR$/test-data/fields.json">
               <provider selected="true" editor-type-id="text-editor">
-                <state relative-caret-position="409">
-                  <caret line="32" column="39" selection-start-line="32" selection-start-column="25" selection-end-line="32" selection-end-column="39" />
+                <state relative-caret-position="45">
+                  <caret line="3" column="23" lean-forward="true" selection-start-line="3" selection-start-column="23" selection-end-line="3" selection-end-column="23" />
                 </state>
               </provider>
             </entry>
@@ -145,16 +138,16 @@
         <option value="$PROJECT_DIR$/test-data/CatalogSolr.json" />
         <option value="$PROJECT_DIR$/.gitignore" />
         <option value="$PROJECT_DIR$/fields.json" />
-        <option value="$PROJECT_DIR$/config.json" />
-        <option value="$PROJECT_DIR$/commit-to-solr.js" />
         <option value="$PROJECT_DIR$/test/catalog.spec.js" />
         <option value="$PROJECT_DIR$/test-data/fields.json" />
         <option value="$PROJECT_DIR$/lib/CatalogSolr.js" />
+        <option value="$PROJECT_DIR$/commit-to-solr.js" />
+        <option value="$PROJECT_DIR$/config.json" />
       </list>
     </option>
   </component>
   <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="1440" />
+    <option name="x" value="1441" />
     <option name="y" value="-277" />
     <option name="width" value="1920" />
     <option name="height" value="1177" />
@@ -254,7 +247,7 @@
       <option name="presentableId" value="Default" />
       <updated>1558421147646</updated>
       <workItem from="1558421149207" duration="30478000" />
-      <workItem from="1558654598476" duration="48948000" />
+      <workItem from="1558654598476" duration="51282000" />
     </task>
     <servers />
   </component>
@@ -291,24 +284,25 @@
     </history-entry>
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="79426000" />
+    <option name="totallyTimeSpent" value="81760000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="1440" y="-277" width="1920" height="1177" extended-state="6" />
+    <frame x="1441" y="-277" width="1920" height="1177" extended-state="6" />
+    <editor active="true" />
     <layout>
       <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.15481833" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.3299539" />
-      <window_info active="true" anchor="bottom" id="Debug" order="3" visible="true" weight="0.27834103" />
+      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.3299539" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.27834103" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" />
       <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
       <window_info anchor="bottom" id="Version Control" order="8" />
-      <window_info anchor="bottom" id="Terminal" order="9" weight="0.23821656" />
+      <window_info anchor="bottom" id="Terminal" order="9" weight="0.23778802" />
       <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
       <window_info anchor="right" id="Commander" order="0" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
@@ -352,13 +346,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/config.json">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="75">
-          <caret line="5" column="18" selection-start-line="5" selection-start-column="18" selection-end-line="5" selection-end-column="18" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/test-data/CatalogSolr.json">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-17">
@@ -380,31 +367,38 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/commit-to-solr.js">
+    <entry file="file://$PROJECT_DIR$/test-data/CATALOG.json">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="587">
-          <caret line="137" column="31" lean-forward="true" selection-start-line="137" selection-start-column="31" selection-end-line="137" selection-end-column="31" />
+        <state relative-caret-position="329">
+          <caret line="45" column="9" lean-forward="true" selection-start-line="45" selection-start-column="9" selection-end-line="45" selection-end-column="9" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test-data/CATALOG.json">
+    <entry file="file://$PROJECT_DIR$/lib/CatalogSolr.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="329">
-          <caret line="45" column="9" lean-forward="true" selection-start-line="45" selection-start-column="9" selection-end-line="45" selection-end-column="9" />
+        <state relative-caret-position="394">
+          <caret line="38" column="14" selection-start-line="38" selection-start-column="14" selection-end-line="38" selection-end-column="14" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/test-data/fields.json">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="409">
-          <caret line="32" column="39" selection-start-line="32" selection-start-column="25" selection-end-line="32" selection-end-column="39" />
+        <state relative-caret-position="45">
+          <caret line="3" column="23" lean-forward="true" selection-start-line="3" selection-start-column="23" selection-end-line="3" selection-end-column="23" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/lib/CatalogSolr.js">
+    <entry file="file://$PROJECT_DIR$/commit-to-solr.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="245">
-          <caret line="38" column="14" selection-start-line="38" selection-start-column="14" selection-end-line="38" selection-end-column="14" />
+        <state relative-caret-position="300">
+          <caret line="20" column="34" lean-forward="true" selection-start-line="20" selection-start-column="34" selection-end-line="20" selection-end-column="34" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/config.json">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="105">
+          <caret line="7" column="15" lean-forward="true" selection-start-line="7" selection-start-column="15" selection-end-line="7" selection-end-column="15" />
         </state>
       </provider>
     </entry>
diff --git a/commit-to-solr.js b/commit-to-solr.js
index 7276d0103b358c589ca8be1c6430053d225f6113..e532daac370410c2cb5609db674db80a29beb827 100644
--- a/commit-to-solr.js
+++ b/commit-to-solr.js
@@ -16,6 +16,7 @@ const solrUpdate = configJson['solrUpdate'] || '';
 const fieldConfig = require(configJson['fields']);
 const logLevel = configJson['logLevel'] || 4;
 const waitPeriod = configJson['waitPeriod'] || 0;
+const batchNum = configJson['batch'] || 1000;
 
 const catalog = new CatalogSolr();
 catalog.setConfig(fieldConfig);
@@ -101,35 +102,37 @@ if (fs.existsSync(sourcePath)) {
   process.exit(1);
 }
 
-catalogs = [];
-
-records.forEach((r) => {
-  const solrObj = createCatalogSolr(r);
-  if (solrObj) {
-    if (solrObj.Dataset) {
-      solrObj.Dataset.forEach((c) => {
-        catalogs.push(c);
-      });
-    }
-    if (solrObj.Person) {
-      solrObj.Person.forEach((c) => {
-        catalogs.push(c);
-      });
+function catalogToArray(recs) {
+  const catalogs = [];
+  recs.forEach((rec) => {
+    const solrObj = createCatalogSolr(rec);
+    if (solrObj) {
+      if (solrObj.Dataset) {
+        solrObj.Dataset.forEach((c) => {
+          catalogs.push(c);
+        });
+      }
+      if (solrObj.Person) {
+        solrObj.Person.forEach((c) => {
+          catalogs.push(c);
+        });
+      }
     }
-  }
-
-});
+  });
+  return catalogs;
+}
 
-const fakePromises = [1];
+const batch = _.chunk(records, batchNum);
 
-fakePromises.reduce((promise, p, index) => {
+batch.reduce((promise, p, index) => {
   return promise.then(() => {
+    const catalogs = catalogToArray(records);
     return updateDocs(catalogs).then(async () => {
       if (waitPeriod) {
         const waited = await sleep(waitPeriod);
       }
       console.log('Update docs');
-      if (index >= fakePromises.length - 1) {
+      if (index >= batch.length - 1) {
         console.log('run commit');
         return commitDocs('?commit=true&overwrite=true').then(() => {
           return Promise.resolve();
diff --git a/config.json b/config.json
index 36c2652a348bfbd9ef2ce6fa52dfa2f1f0c19ae2..8bf2a719ae236d787c4b409cf56e7c60c6753a83 100644
--- a/config.json
+++ b/config.json
@@ -4,5 +4,6 @@
   "solrUpdate": "http://localhost:8983/solr/dataset/update/json",
   "logLevel": 3,
   "waitPeriod": 1,
-  "fields": "./fields.json"
+  "fields": "./fields.json",
+  "batch": 1000
 }