use new style docsearch
diff --git a/app.html b/app.html
index 75bebba..28aef4d 100644
--- a/app.html
+++ b/app.html
@@ -11,19 +11,11 @@
       type="text/css"
       href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css"
     />
-    <link
-      rel="stylesheet"
-      href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"
-    />
     {{ HEAD }}
   </head>
   <body {{ BODY_ATTRS }}>
     {{ APP }}
     <script src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
-    <script
-      type="text/javascript"
-      src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"
-    ></script>
   </body>
 </html>
diff --git a/components/partials/Sidebar.vue b/components/partials/Sidebar.vue
index 819f297..de50fa6 100644
--- a/components/partials/Sidebar.vue
+++ b/components/partials/Sidebar.vue
@@ -1,7 +1,8 @@
 <template>
   <div :class="`bd-sidebar col-sm-3 col-md-2  ${sidebarOpen ? '' : 'closed'}`">
     <div class="sidebar-search">
-      <input
+      <div id="handbook-search-intput"></div>
+      <!-- <input
         id="handbook-search-intput"
         type="search"
         placeholder="Search Handbook"
@@ -21,7 +22,7 @@
             d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
           />
         </svg>
-      </div>
+      </div> -->
     </div>
     <div class="bd-docs-nav">
       <ul class="nav bd-sidenav nav-root level0">
@@ -88,6 +89,9 @@
 import Vue from 'vue'
 import scrollIntoView from 'scroll-into-view'
 import SidebarNavItem from './SidebarNavItem.vue'
+// @ts-ignore
+import docsearch from '@docsearch/js'
+// import '@docsearch/css'
 
 export default Vue.extend({
   components: {
@@ -125,10 +129,10 @@
     docsearch({
       apiKey: '6ade5f1ff34e94690f9ea38cddcc2f55',
       indexName: 'apache_echarts',
-      inputSelector: '#handbook-search-intput',
-      algoliaOptions: {
-        facetFilters: ['language:en']
-      },
+      container: '#handbook-search-intput',
+      // searchParameters: {
+      //   facetFilters: ['language:en']
+      // },
       debug: false // Set debug to true if you want to inspect the dropdown
     })
   }
@@ -136,9 +140,11 @@
 </script>
 
 <style lang="postcss">
+@import '@docsearch/css';
+
 .bd-sidebar {
   position: sticky;
-  z-index: 1000;
+  z-index: 10;
   top: 0;
   left: 0;
   padding: 0;
@@ -158,15 +164,19 @@
   }
 
   .sidebar-search {
-    padding: 15px 20px;
+    padding: 15px 30px 15px 0;
     border-bottom: 1px solid #eee;
 
     .algolia-autocomplete {
       @apply w-full;
     }
 
-    input {
-      @apply shadow rounded-xl border-0 p-4 w-full;
+    #handbook-search-intput {
+      @apply w-full;
+
+      button {
+        @apply w-full;
+      }
     }
 
     .search-icon {
@@ -207,7 +217,7 @@
       height: 40px;
       padding: 5px;
       color: #000;
-      z-index: 1200;
+      z-index: 20;
       background: #eee;
       @apply shadow-lg rounded-r-2xl;
 
diff --git a/layouts/default.vue b/layouts/default.vue
index 127a59d..741ec1a 100644
--- a/layouts/default.vue
+++ b/layouts/default.vue
@@ -261,4 +261,8 @@
     }
   }
 }
+
+footer.DocSearch-Footer {
+  min-height: initial;
+}
 </style>
diff --git a/package-lock.json b/package-lock.json
index 7c76a35..b0bfc45 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -46,6 +46,142 @@
       "integrity": "sha512-PspSX7Z9zh2Fyyuf3F6BsYeXcYHfc/VJ1vwy2vouas95efHVd42M6UfBFRs+jY0uiMDXhAoUtATn9g2r1MaWBQ==",
       "dev": true
     },
+    "@algolia/autocomplete-core": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.2.2.tgz",
+      "integrity": "sha512-JOQaURze45qVa8OOFDh+ozj2a/ObSRsVyz6Zd0aiBeej+RSTqrr1hDVpGNbbXYLW26G5ujuc9QIdH+rBHn95nw==",
+      "requires": {
+        "@algolia/autocomplete-shared": "1.2.2"
+      }
+    },
+    "@algolia/autocomplete-preset-algolia": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.2.2.tgz",
+      "integrity": "sha512-AZkh+bAMaJDzMZTelFOXJTJqkp5VPGH8W3n0B+Ggce7DdozlMRsDLguKTCQAkZ0dJ1EbBPyFL5ztL/JImB137Q==",
+      "requires": {
+        "@algolia/autocomplete-shared": "1.2.2"
+      }
+    },
+    "@algolia/autocomplete-shared": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.2.2.tgz",
+      "integrity": "sha512-mLTl7d2C1xVVazHt/bqh9EE/u2lbp5YOxLDdcjILXmUqOs5HH1D4SuySblXaQG1uf28FhTqMGp35qE5wJQnqAw=="
+    },
+    "@algolia/cache-browser-local-storage": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.10.5.tgz",
+      "integrity": "sha512-cfX2rEKOtuuljcGI5DMDHClwZHdDqd2nT2Ohsc8aHtBiz6bUxKVyIqxr2gaC6tU8AgPtrTVBzcxCA+UavXpKww==",
+      "requires": {
+        "@algolia/cache-common": "4.10.5"
+      }
+    },
+    "@algolia/cache-common": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.10.5.tgz",
+      "integrity": "sha512-1mClwdmTHll+OnHkG+yeRoFM17kSxDs4qXkjf6rNZhoZGXDvfYLy3YcZ1FX4Kyz0DJv8aroq5RYGBDsWkHj6Tw=="
+    },
+    "@algolia/cache-in-memory": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.10.5.tgz",
+      "integrity": "sha512-+ciQnfIGi5wjMk02XhEY8fmy2pzy+oY1nIIfu8LBOglaSipCRAtjk6WhHc7/KIbXPiYzIwuDbM2K1+YOwSGjwA==",
+      "requires": {
+        "@algolia/cache-common": "4.10.5"
+      }
+    },
+    "@algolia/client-account": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.10.5.tgz",
+      "integrity": "sha512-I9UkSS2glXm7RBZYZIALjBMmXSQbw/fI/djPcBHxiwXIheNIlqIFl2SNPkvihpPF979BSkzjqdJNRPhE1vku3Q==",
+      "requires": {
+        "@algolia/client-common": "4.10.5",
+        "@algolia/client-search": "4.10.5",
+        "@algolia/transporter": "4.10.5"
+      }
+    },
+    "@algolia/client-analytics": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.10.5.tgz",
+      "integrity": "sha512-h2owwJSkovPxzc+xIsjY1pMl0gj+jdVwP9rcnGjlaTY2fqHbSLrR9yvGyyr6305LvTppxsQnfAbRdE/5Z3eFxw==",
+      "requires": {
+        "@algolia/client-common": "4.10.5",
+        "@algolia/client-search": "4.10.5",
+        "@algolia/requester-common": "4.10.5",
+        "@algolia/transporter": "4.10.5"
+      }
+    },
+    "@algolia/client-common": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.10.5.tgz",
+      "integrity": "sha512-21FAvIai5qm8DVmZHm2Gp4LssQ/a0nWwMchAx+1hIRj1TX7OcdW6oZDPyZ8asQdvTtK7rStQrRnD8a95SCUnzA==",
+      "requires": {
+        "@algolia/requester-common": "4.10.5",
+        "@algolia/transporter": "4.10.5"
+      }
+    },
+    "@algolia/client-personalization": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.10.5.tgz",
+      "integrity": "sha512-nH+IyFKBi8tCyzGOanJTbXC5t4dspSovX3+ABfmwKWUYllYzmiQNFUadpb3qo+MLA3jFx5IwBesjneN6dD5o3w==",
+      "requires": {
+        "@algolia/client-common": "4.10.5",
+        "@algolia/requester-common": "4.10.5",
+        "@algolia/transporter": "4.10.5"
+      }
+    },
+    "@algolia/client-search": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.10.5.tgz",
+      "integrity": "sha512-1eQFMz9uodrc5OM+9HeT+hHcfR1E1AsgFWXwyJ9Q3xejA2c1c4eObGgOgC9ZoshuHHdptaTN1m3rexqAxXRDBg==",
+      "requires": {
+        "@algolia/client-common": "4.10.5",
+        "@algolia/requester-common": "4.10.5",
+        "@algolia/transporter": "4.10.5"
+      }
+    },
+    "@algolia/logger-common": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.10.5.tgz",
+      "integrity": "sha512-gRJo9zt1UYP4k3woEmZm4iuEBIQd/FrArIsjzsL/b+ihNoOqIxZKTSuGFU4UUZOEhvmxDReiA4gzvQXG+TMTmA=="
+    },
+    "@algolia/logger-console": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.10.5.tgz",
+      "integrity": "sha512-4WfIbn4253EDU12u9UiYvz+QTvAXDv39mKNg9xSoMCjKE5szcQxfcSczw2byc6pYhahOJ9PmxPBfs1doqsdTKQ==",
+      "requires": {
+        "@algolia/logger-common": "4.10.5"
+      }
+    },
+    "@algolia/requester-browser-xhr": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.5.tgz",
+      "integrity": "sha512-53/MURQEqtK+bGdfq4ITSPwTh5hnADU99qzvpAINGQveUFNSFGERipJxHjTJjIrjFz3vxj5kKwjtxDnU6ygO9g==",
+      "requires": {
+        "@algolia/requester-common": "4.10.5"
+      }
+    },
+    "@algolia/requester-common": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.10.5.tgz",
+      "integrity": "sha512-UkVa1Oyuj6NPiAEt5ZvrbVopEv1m/mKqjs40KLB+dvfZnNcj+9Fry4Oxnt15HMy/HLORXsx4UwcthAvBuOXE9Q=="
+    },
+    "@algolia/requester-node-http": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.10.5.tgz",
+      "integrity": "sha512-aNEKVKXL4fiiC+bS7yJwAHdxln81ieBwY3tsMCtM4zF9f5KwCzY2OtN4WKEZa5AAADVcghSAUdyjs4AcGUlO5w==",
+      "requires": {
+        "@algolia/requester-common": "4.10.5"
+      }
+    },
+    "@algolia/transporter": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.10.5.tgz",
+      "integrity": "sha512-F8DLkmIlvCoMwSCZA3FKHtmdjH3o5clbt0pi2ktFStVNpC6ZDmY307HcK619bKP5xW6h8sVJhcvrLB775D2cyA==",
+      "requires": {
+        "@algolia/cache-common": "4.10.5",
+        "@algolia/logger-common": "4.10.5",
+        "@algolia/requester-common": "4.10.5"
+      }
+    },
     "@babel/code-frame": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
@@ -2173,6 +2309,31 @@
       "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz",
       "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw=="
     },
+    "@docsearch/css": {
+      "version": "3.0.0-alpha.40",
+      "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0-alpha.40.tgz",
+      "integrity": "sha512-PrOTPgJMl+Iji1zOH0+J0PEDMriJ1teGxbgll7o4h8JrvJW6sJGqQw7/bLW7enWiFaxbJMK76w1yyPNLFHV7Qg=="
+    },
+    "@docsearch/js": {
+      "version": "3.0.0-alpha.40",
+      "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.0.0-alpha.40.tgz",
+      "integrity": "sha512-0ysRM0jk1KAbw/QsHPHIKoa7OeCm2Mwz0JgcPnhWRvvA28dzP+f6OIsL6eGu3VJR043tH9OrvVf/FnvLtTtZtw==",
+      "requires": {
+        "@docsearch/react": "3.0.0-alpha.40",
+        "preact": "^10.0.0"
+      }
+    },
+    "@docsearch/react": {
+      "version": "3.0.0-alpha.40",
+      "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0-alpha.40.tgz",
+      "integrity": "sha512-aKxnu7sgpP1R7jtgOV/pZdJEHXx6Ts+jnS9U/ejSUS2BMUpwQI5SA3oLs1BA5TA9kIViJ5E+rrjh0VsbcsJ6sQ==",
+      "requires": {
+        "@algolia/autocomplete-core": "1.2.2",
+        "@algolia/autocomplete-preset-algolia": "1.2.2",
+        "@docsearch/css": "3.0.0-alpha.40",
+        "algoliasearch": "^4.0.0"
+      }
+    },
     "@fullhuman/postcss-purgecss": {
       "version": "3.1.3",
       "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.1.3.tgz",
@@ -5329,6 +5490,27 @@
       "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
       "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="
     },
+    "algoliasearch": {
+      "version": "4.10.5",
+      "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.10.5.tgz",
+      "integrity": "sha512-KmH2XkiN+8FxhND4nWFbQDkIoU6g2OjfeU9kIv4Lb+EiOOs3Gpp7jvd+JnatsCisAZsnWQdjd7zVlW7I/85QvQ==",
+      "requires": {
+        "@algolia/cache-browser-local-storage": "4.10.5",
+        "@algolia/cache-common": "4.10.5",
+        "@algolia/cache-in-memory": "4.10.5",
+        "@algolia/client-account": "4.10.5",
+        "@algolia/client-analytics": "4.10.5",
+        "@algolia/client-common": "4.10.5",
+        "@algolia/client-personalization": "4.10.5",
+        "@algolia/client-search": "4.10.5",
+        "@algolia/logger-common": "4.10.5",
+        "@algolia/logger-console": "4.10.5",
+        "@algolia/requester-browser-xhr": "4.10.5",
+        "@algolia/requester-common": "4.10.5",
+        "@algolia/requester-node-http": "4.10.5",
+        "@algolia/transporter": "4.10.5"
+      }
+    },
     "alphanum-sort": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
@@ -16433,6 +16615,11 @@
         "uniq": "^1.0.1"
       }
     },
+    "preact": {
+      "version": "10.5.14",
+      "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.14.tgz",
+      "integrity": "sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ=="
+    },
     "prelude-ls": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
diff --git a/package.json b/package.json
index 5c39dda..84c7d9a 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,8 @@
     "build:asf": "npm run prepare && NUXT_ENV_DEPLOY=asf nuxt generate"
   },
   "dependencies": {
+    "@docsearch/css": "^3.0.0-alpha.40",
+    "@docsearch/js": "^3.0.0-alpha.40",
     "@nuxt/types": "^2.15.6",
     "@vue/composition-api": "^1.0.0-rc.10",
     "clipboard": "^2.0.8",