diff --git a/Gemfile b/Gemfile
index 100c6a2e14e4a5739a9e22baf52d3ef0f6438505..e59cb8dad432a3c679e56260e02bc5f0d14cb069 100644
--- a/Gemfile
+++ b/Gemfile
@@ -106,7 +106,8 @@ gem 'seed-fu', '~> 2.3.5'
 # Search
 gem 'elasticsearch-model', '~> 0.1.9'
 gem 'elasticsearch-rails', '~> 0.1.9'
-gem 'gitlab-elasticsearch-git', '~> 1.1', require: "elasticsearch/git"
+gem 'elasticsearch-api',   '5.0.3'
+gem 'gitlab-elasticsearch-git', '1.1.1', require: "elasticsearch/git"
 
 # Markdown and HTML processing
 gem 'html-pipeline',        '~> 1.11.0'
diff --git a/Gemfile.lock b/Gemfile.lock
index a9f05b1b38743ca0eb6538a70abeed66fd0d1821..d57267dda2ff7fbb462963e429b8b78763139f69 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -86,7 +86,7 @@ GEM
       sass (>= 3.3.4)
     brakeman (3.4.1)
     browser (2.2.0)
-    builder (3.2.2)
+    builder (3.2.3)
     bullet (5.2.0)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.10.0)
@@ -169,17 +169,17 @@ GEM
       railties (>= 4.2)
     dropzonejs-rails (0.7.2)
       rails (> 3.1)
-    elasticsearch (1.1.0)
-      elasticsearch-api (= 1.1.0)
-      elasticsearch-transport (= 1.1.0)
-    elasticsearch-api (1.1.0)
+    elasticsearch (5.0.3)
+      elasticsearch-api (= 5.0.3)
+      elasticsearch-transport (= 5.0.3)
+    elasticsearch-api (5.0.3)
       multi_json
     elasticsearch-model (0.1.9)
       activesupport (> 3)
       elasticsearch (> 0.4)
       hashie
     elasticsearch-rails (0.1.9)
-    elasticsearch-transport (1.1.0)
+    elasticsearch-transport (5.0.3)
       faraday
       multi_json
     email_reply_trimmer (0.1.6)
@@ -265,12 +265,12 @@ GEM
       mime-types (>= 1.19)
       rugged (>= 0.23.0b)
     github-markup (1.4.0)
-    gitlab-elasticsearch-git (1.1.0)
+    gitlab-elasticsearch-git (1.1.1)
       activemodel (~> 4.2)
       activesupport (~> 4.2)
       charlock_holmes (~> 0.7)
-      elasticsearch-api (~> 1.0)
-      elasticsearch-model (~> 0.1.8)
+      elasticsearch-api
+      elasticsearch-model (~> 0.1.9)
       github-linguist (~> 4.7)
       rugged (~> 0.24)
     gitlab-flowdock-git-hook (1.0.1)
@@ -353,7 +353,7 @@ GEM
       temple (~> 0.7.6)
       thor
       tilt
-    hashie (3.4.4)
+    hashie (3.5.1)
     health_check (2.2.1)
       rails (>= 4.0)
     hipchat (1.5.2)
@@ -889,6 +889,7 @@ DEPENDENCIES
   diffy (~> 3.1.0)
   doorkeeper (~> 4.2.0)
   dropzonejs-rails (~> 0.7.1)
+  elasticsearch-api (= 5.0.3)
   elasticsearch-model (~> 0.1.9)
   elasticsearch-rails (~> 0.1.9)
   email_reply_trimmer (~> 0.1)
@@ -908,7 +909,7 @@ DEPENDENCIES
   gemnasium-gitlab-service (~> 0.2)
   gemojione (~> 3.0)
   github-linguist (~> 4.7.0)
-  gitlab-elasticsearch-git (~> 1.1)
+  gitlab-elasticsearch-git (= 1.1.1)
   gitlab-flowdock-git-hook (~> 1.0.1)
   gitlab-license (~> 1.0)
   gitlab-markup (~> 1.5.1)
diff --git a/app/workers/elastic_indexer_worker.rb b/app/workers/elastic_indexer_worker.rb
index 76a84f395033d0ca8ca3d6f27e0af94d205caab6..de8be130c3fcd93771e02833d922ecdbd5157c5c 100644
--- a/app/workers/elastic_indexer_worker.rb
+++ b/app/workers/elastic_indexer_worker.rb
@@ -1,5 +1,3 @@
-require 'gitlab/elastic/delete_by_query'
-
 class ElasticIndexerWorker
   include Sidekiq::Worker
   include Elasticsearch::Model::Client::ClassMethods
@@ -66,7 +64,7 @@ def clear_project_data(record_id)
   end
 
   def remove_documents_by_project_id(record_id)
-    client.gitlab_delete_by_query({
+    client.delete_by_query({
       index: Project.__elasticsearch__.index_name,
       body: {
         query: {
@@ -77,7 +75,7 @@ def remove_documents_by_project_id(record_id)
   end
 
   def remove_children_documents(document_type, parent_record_id)
-    client.gitlab_delete_by_query({
+    client.delete_by_query({
       index: Project.__elasticsearch__.index_name,
       body: {
         query: {
diff --git a/lib/gitlab/elastic/delete_by_query.rb b/lib/gitlab/elastic/delete_by_query.rb
deleted file mode 100644
index 73b61072a4d5e525f04a5ddfa2ffab55d7c4a82a..0000000000000000000000000000000000000000
--- a/lib/gitlab/elastic/delete_by_query.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-module Elasticsearch
-  module API
-    module Actions
-      # The built-in action https://github.com/elastic/elasticsearch-ruby/blob/master/elasticsearch-api/lib/elasticsearch/api/actions/delete_by_query.rb
-      # does not work with Elasticsearch 5.0 yet. There is an issue for that https://github.com/elastic/elasticsearch-ruby/issues/387
-      # but until it's not fixed we can use our own action for that
-      def gitlab_delete_by_query(arguments = {})
-        raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
-
-        valid_params = [
-          :analyzer,
-          :consistency,
-          :default_operator,
-          :df,
-          :ignore_indices,
-          :ignore_unavailable,
-          :allow_no_indices,
-          :expand_wildcards,
-          :replication,
-          :q,
-          :routing,
-          :source,
-          :timeout ]
-
-        method = HTTP_POST
-        path   = Utils.__pathify Utils.__listify(arguments[:index]),
-                                 Utils.__listify(arguments[:type]),
-                                 '/_delete_by_query'
-
-        params = Utils.__validate_and_extract_params arguments, valid_params
-        body   = arguments[:body]
-
-        perform_request(method, path, params, body).body
-      end
-    end
-  end
-end