From 1c434615b30a7ff479213723bb6c99c421916c6e Mon Sep 17 00:00:00 2001
From: Takeshi Umeda <noel.yoshiba@gmail.com>
Date: Sat, 23 May 2020 12:48:14 +0900
Subject: [PATCH] Fix workaround for Elasticsearch 7.x (#13828)

---
 config/initializers/chewy.rb | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb
index 18d2f18c1..8f54abf77 100644
--- a/config/initializers/chewy.rb
+++ b/config/initializers/chewy.rb
@@ -29,3 +29,22 @@ end
 # Mastodon is run with hidden services enabled, because
 # ElasticSearch is *not* supposed to be accessed through a proxy
 Faraday.ignore_env_proxy = true
+
+# Elasticsearch 7.x workaround
+Elasticsearch::Transport::Client.prepend Module.new {
+  def search(arguments = {})
+    arguments[:rest_total_hits_as_int] = true
+    super arguments
+  end
+}
+Elasticsearch::API::Indices::IndicesClient.prepend Module.new {
+  def create(arguments = {})
+    arguments[:include_type_name] = true
+    super arguments
+  end
+
+  def put_mapping(arguments = {})
+    arguments[:include_type_name] = true
+    super arguments
+  end
+}