elasticsearch-persistence 7.2.1 → 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da08635ca213d32288a7bf6eafadd4e5c90495ffa647938ed0932c815f1b36f4
4
- data.tar.gz: 64eecce8b4e1990692812a07f7668a73cecb0e0c6e7d0b10122abb544f85b9af
3
+ metadata.gz: 88bcaa32622770f7fe47c65cbc707b06719d51dd3f6c81e1690666e8ed224034
4
+ data.tar.gz: 60dc779f07f2fec1d368266fdba2a8f31de473e3dd53405fc0394159756fd524
5
5
  SHA512:
6
- metadata.gz: e2a90150247fb70ca0398d517d9b8276b11fc6b69d1906b0862f62b6171cfd7ed99f9b598633faf531f6ebfbf89d8128dbc2333bd743e20fb99c28882f3703ec
7
- data.tar.gz: cc74ca2a8ee2cc7e2e3ab3717089258bcc6096fda78412c5af8a6f1441c3ae682a2f93bb154ffe15751b115724894944736f2b08c3121b9de72a6d9c1e7f9378
6
+ metadata.gz: 206ee66e4041b522a8ebc15d0b102068dfabcc7ad927654e45680bc9ff964f66affd581e050f73d3fc14cb2996c7cbfd2915c9c6d3acebceea73babc7f9e1e68
7
+ data.tar.gz: 4525c21fafaaae024b0e7343bbdd0c24ee0a90e251e21c1d54ecc5a83d5f07f69075fba4d537c49655bb210d189ffa7950463c8605848d5bde485e69d3882821
data/Gemfile CHANGED
@@ -25,6 +25,7 @@ gem 'elasticsearch-model',
25
25
  require: false
26
26
 
27
27
  group :development, :testing do
28
+ gem 'debug' unless defined?(JRUBY_VERSION)
28
29
  gem 'pry-nav'
29
30
  gem 'rspec'
30
31
  end
data/README.md CHANGED
@@ -4,17 +4,19 @@ Persistence layer for Ruby domain objects in Elasticsearch, using the Repository
4
4
 
5
5
  ## Compatibility
6
6
 
7
- This library is compatible with Ruby 2.4 and higher.
7
+ This library is compatible with Ruby 3.1 and higher.
8
8
 
9
- The library version numbers follow the Elasticsearch major versions. The `main` branch is compatible with the latest Elasticsearch stack stable release.
9
+ The version numbers follow the Elasticsearch major versions. Currently the `main` branch is compatible with version `8.x` of the Elasticsearch stack.
10
10
 
11
- | Rubygem | | Elasticsearch |
12
- |:-------------:|:-:| :-----------: |
13
- | 0.1 | → | 1.x |
14
- | 2.x | → | 2.x |
15
- | 5.x | → | 5.x |
16
- | 6.x | → | 6.x |
17
- | main | → | 7.x |
11
+ | Rubygem | | Elasticsearch |
12
+ |:-------:|:-:|:-------------:|
13
+ | 0.1 | → | 1.x |
14
+ | 2.x | → | 2.x |
15
+ | 5.x | → | 5.x |
16
+ | 6.x | → | 6.x |
17
+ | 7.x | → | 7.x |
18
+ | 8.x | → | 8.x |
19
+ | main | → | 8.x |
18
20
 
19
21
  ## Installation
20
22
 
@@ -77,7 +79,7 @@ note = Note.new id: 1, text: 'Test'
77
79
  repository.save(note)
78
80
  # PUT http://localhost:9200/repository/_doc/1 [status:201, request:0.210s, query:n/a]
79
81
  # > {"id":1,"text":"Test"}
80
- # < {"_index":"repository","_type":"note","_id":"1","_version":1,"created":true}
82
+ # < {"_index":"repository","_id":"1","_version":1,"created":true}
81
83
  ```
82
84
 
83
85
  ...find it...
@@ -85,7 +87,7 @@ repository.save(note)
85
87
  ```ruby
86
88
  n = repository.find(1)
87
89
  # GET http://localhost:9200/repository/_doc/1 [status:200, request:0.003s, query:n/a]
88
- # < {"_index":"repository","_type":"note","_id":"1","_version":2,"found":true, "_source" : {"id":1,"text":"Test"}}
90
+ # < {"_index":"repository","_id":"1","_version":2,"found":true, "_source" : {"id":1,"text":"Test"}}
89
91
  => <Note:0x007fcbfc0c4980 @attributes={"id"=>1, "text"=>"Test"}>
90
92
  ```
91
93
 
@@ -104,14 +106,14 @@ repository.search(query: { match: { text: 'test' } }).first
104
106
  ```ruby
105
107
  repository.delete(note)
106
108
  # DELETE http://localhost:9200/repository/_doc/1 [status:200, request:0.014s, query:n/a]
107
- # < {"found":true,"_index":"repository","_type":"note","_id":"1","_version":3}
108
- => {"found"=>true, "_index"=>"repository", "_type"=>"note", "_id"=>"1", "_version"=>2}
109
+ # < {"found":true,"_index":"repository","_id":"1","_version":3}
110
+ => {"found"=>true, "_index"=>"repository", "_id"=>"1", "_version"=>2}
109
111
  ```
110
112
 
111
113
  The repository module provides a number of features and facilities to configure and customize the behavior:
112
114
 
113
115
  * Configuring the Elasticsearch [client](https://github.com/elastic/elasticsearch-ruby#usage) being used
114
- * Setting the index name, document type, and object class for deserialization
116
+ * Setting the index name, and object class for deserialization
115
117
  * Composing mappings and settings for the index
116
118
  * Creating, deleting or refreshing the index
117
119
  * Finding or searching for documents
@@ -144,7 +146,7 @@ class MyRepository
144
146
  end
145
147
 
146
148
  client = Elasticsearch::Client.new(url: ENV['ELASTICSEARCH_URL'], log: true)
147
- repository = MyRepository.new(client: client, index_name: :my_notes, type: :note, klass: Note)
149
+ repository = MyRepository.new(client: client, index_name: :my_notes, klass: Note)
148
150
  repository.settings number_of_shards: 1 do
149
151
  mapping do
150
152
  indexes :text, analyzer: 'snowball'
@@ -152,8 +154,7 @@ repository.settings number_of_shards: 1 do
152
154
  end
153
155
  ```
154
156
 
155
- The custom Elasticsearch client will be used now, with a custom index and type names,
156
- as well as the custom serialization and de-serialization logic.
157
+ The custom Elasticsearch client will be used now, with a custom index, as well as the custom serialization and de-serialization logic.
157
158
 
158
159
  We can create the index with the desired settings and mappings:
159
160
 
@@ -169,7 +170,7 @@ Save the document with extra properties added by the `serialize` method:
169
170
  repository.save(note)
170
171
  # PUT http://localhost:9200/my_notes/note/1
171
172
  # > {"id":1,"text":"Test","my_special_key":"my_special_stuff"}
172
- {"_index"=>"my_notes", "_type"=>"my_note", "_id"=>"1", "_version"=>4, ... }
173
+ {"_index"=>"my_notes", "_id"=>"1", "_version"=>4, ... }
173
174
  ```
174
175
 
175
176
  And `deserialize` it:
@@ -193,7 +194,6 @@ class NoteRepository
193
194
  include Elasticsearch::Persistence::Repository::DSL
194
195
 
195
196
  index_name 'notes'
196
- document_type 'note'
197
197
  klass Note
198
198
 
199
199
  settings number_of_shards: 1 do
@@ -236,7 +236,7 @@ You can also override the default configuration with options passed to the initi
236
236
 
237
237
  ```ruby
238
238
  client = Elasticsearch::Client.new(url: 'http://localhost:9250', log: true)
239
- client.transport.transport.logger.formatter = proc { |s, d, p, m| "\e[2m# #{m}\n\e[0m" }
239
+ client.transport.logger.formatter = proc { |s, d, p, m| "\e[2m# #{m}\n\e[0m" }
240
240
  repository = NoteRepository.new(client: client, index_name: 'notes_development')
241
241
 
242
242
  repository.create_index!(force: true)
@@ -267,7 +267,7 @@ The repository uses the standard Elasticsearch [client](https://github.com/elast
267
267
  ```ruby
268
268
  client = Elasticsearch::Client.new(url: 'http://search.server.org')
269
269
  repository = NoteRepository.new(client: client)
270
- repository.client.transport.transport.logger = Logger.new(STDERR)
270
+ repository.client.transport.logger = Logger.new(STDERR)
271
271
  repository.client
272
272
  # => Elasticsearch::Client
273
273
 
@@ -317,36 +317,8 @@ repository.index_name
317
317
 
318
318
  ```
319
319
 
320
- The `document_type` method specifies the Elasticsearch document type to use for storage, lookup and search. The default value is
321
- '_doc'. Keep in mind that future versions of Elasticsearch will not allow you to set this yourself and will use the type,
322
- '_doc'.
323
-
324
- ```ruby
325
- repository = NoteRepository.new(document_type: 'note')
326
- repository.document_type
327
- # => 'note'
328
-
329
- ```
330
-
331
- or with the DSL mixin:
332
-
333
- ```ruby
334
- class NoteRepository
335
- include Elasticsearch::Persistence::Repository
336
- include Elasticsearch::Persistence::Repository::DSL
337
-
338
- document_type 'note'
339
- end
340
-
341
- repository = NoteRepository.new
342
- repository.document_type
343
- # => 'note'
344
-
345
- ```
346
-
347
320
  The `klass` method specifies the Ruby class name to use when initializing objects from
348
- documents retrieved from the repository. If this value is not set, a Hash representation of the document will be
349
- returned instead.
321
+ documents retrieved from the repository. If this value is not set, a Hash representation of the document will be returned instead.
350
322
 
351
323
  ```ruby
352
324
  repository = NoteRepository.new(klass: Note)
@@ -451,7 +423,7 @@ The `save` method allows you to store a domain object in the repository:
451
423
  ```ruby
452
424
  note = Note.new id: 1, title: 'Quick Brown Fox'
453
425
  repository.save(note)
454
- # => {"_index"=>"notes_development", "_type"=>"_doc", "_id"=>"1", "_version"=>1, "created"=>true}
426
+ # => {"_index"=>"notes_development", "_id"=>"1", "_version"=>1, "created"=>true}
455
427
  ```
456
428
 
457
429
  The `update` method allows you to perform a partial update of a document in the repository.
@@ -459,14 +431,14 @@ Use either a partial document:
459
431
 
460
432
  ```ruby
461
433
  repository.update id: 1, title: 'UPDATED', tags: []
462
- # => {"_index"=>"notes_development", "_type"=>"_doc", "_id"=>"1", "_version"=>2}
434
+ # => {"_index"=>"notes_development", "_id"=>"1", "_version"=>2}
463
435
  ```
464
436
 
465
437
  Or a script (optionally with parameters):
466
438
 
467
439
  ```ruby
468
440
  repository.update 1, script: 'if (!ctx._source.tags.contains(t)) { ctx._source.tags += t }', params: { t: 'foo' }
469
- # => {"_index"=>"notes_development", "_type"=>"_doc", "_id"=>"1", "_version"=>3}
441
+ # => {"_index"=>"notes_development", "_id"=>"1", "_version"=>3}
470
442
  ```
471
443
 
472
444
 
data/Rakefile CHANGED
@@ -15,11 +15,11 @@
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
17
 
18
- require "bundler/gem_tasks"
18
+ require 'bundler/gem_tasks'
19
19
 
20
- desc "Run unit tests"
21
- task :default => 'test:unit'
22
- task :test => 'test:unit'
20
+ desc 'Run unit tests'
21
+ task default: 'test:unit'
22
+ task test: 'test:unit'
23
23
 
24
24
  # ----- Test tasks ------------------------------------------------------------
25
25
 
@@ -27,14 +27,15 @@ require 'rake/testtask'
27
27
  require 'rspec/core/rake_task'
28
28
 
29
29
  namespace :test do
30
-
31
30
  RSpec::Core::RakeTask.new(:spec)
32
31
 
33
32
  Rake::TestTask.new(:all) do |test|
34
33
  test.verbose = false
35
34
  test.warning = false
36
- test.deps = [ :spec ]
35
+ test.deps = [:spec]
37
36
  end
37
+
38
+ task unit: :spec
38
39
  end
39
40
 
40
41
  namespace :bundle do
@@ -65,6 +66,6 @@ if defined?(RUBY_VERSION) && RUBY_VERSION > '1.9'
65
66
  cane.style_measure = 120
66
67
  end
67
68
  rescue LoadError
68
- warn "cane not available, quality task not provided."
69
+ warn 'cane not available, quality task not provided.'
69
70
  end
70
71
  end
@@ -16,52 +16,49 @@
16
16
  # under the License.
17
17
 
18
18
  # coding: utf-8
19
- lib = File.expand_path('../lib', __FILE__)
19
+
20
+ lib = File.expand_path('lib', __dir__)
20
21
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
21
22
  require 'elasticsearch/persistence/version'
22
23
 
23
24
  Gem::Specification.new do |s|
24
- s.name = "elasticsearch-persistence"
25
+ s.name = 'elasticsearch-persistence'
25
26
  s.version = Elasticsearch::Persistence::VERSION
26
- s.authors = ["Karel Minarik"]
27
- s.email = ["karel.minarik@elasticsearch.org"]
28
- s.description = "Persistence layer for Ruby models and Elasticsearch."
29
- s.summary = "Persistence layer for Ruby models and Elasticsearch."
30
- s.homepage = "https://github.com/elasticsearch/elasticsearch-rails/"
31
- s.license = "Apache 2"
27
+ s.authors = ['Elastic Client Library Maintainers']
28
+ s.email = ['client-libs@elastic.co']
29
+ s.description = 'Persistence layer for Ruby models and Elasticsearch.'
30
+ s.summary = 'Persistence layer for Ruby models and Elasticsearch.'
31
+ s.homepage = 'https://github.com/elasticsearch/elasticsearch-rails/'
32
+ s.license = 'Apache 2'
32
33
 
33
34
  s.files = `git ls-files -z`.split("\x0")
34
35
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
35
36
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
36
- s.require_paths = ["lib"]
37
-
38
- s.extra_rdoc_files = [ "README.md", "LICENSE.txt" ]
39
- s.rdoc_options = [ "--charset=UTF-8" ]
40
-
41
- s.required_ruby_version = ">= 1.9.3"
42
-
43
- s.add_dependency "elasticsearch", '~> 7'
44
- s.add_dependency "elasticsearch-model", '7.2.1'
45
- s.add_dependency "activesupport", '> 4'
46
- s.add_dependency "activemodel", '> 4'
47
- s.add_dependency "hashie"
48
-
49
- s.add_development_dependency "bundler"
50
- s.add_development_dependency "rake", "~> 12"
37
+ s.require_paths = ['lib']
51
38
 
52
- s.add_development_dependency "oj" unless defined?(JRUBY_VERSION)
39
+ s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
40
+ s.rdoc_options = ['--charset=UTF-8']
53
41
 
54
- s.add_development_dependency "rails", '> 4'
42
+ s.required_ruby_version = '>= 3'
55
43
 
56
- s.add_development_dependency "minitest"
57
- s.add_development_dependency "test-unit"
58
- s.add_development_dependency "shoulda-context"
59
- s.add_development_dependency "mocha"
60
- s.add_development_dependency "turn"
61
- s.add_development_dependency "yard"
62
- s.add_development_dependency "ruby-prof" unless defined?(JRUBY_VERSION)
63
- s.add_development_dependency "pry"
44
+ s.add_dependency 'activemodel', '> 4'
45
+ s.add_dependency 'activesupport', '> 4'
46
+ s.add_dependency 'elasticsearch', '~> 8'
47
+ s.add_dependency 'elasticsearch-model', '8'
48
+ s.add_dependency 'hashie'
64
49
 
65
- s.add_development_dependency "simplecov"
66
- s.add_development_dependency "cane"
50
+ s.add_development_dependency 'bundler'
51
+ s.add_development_dependency 'cane'
52
+ s.add_development_dependency 'minitest'
53
+ s.add_development_dependency 'mocha'
54
+ s.add_development_dependency 'oj' unless defined?(JRUBY_VERSION)
55
+ s.add_development_dependency 'pry'
56
+ s.add_development_dependency 'rails', '> 4'
57
+ s.add_development_dependency 'rake', '~> 12'
58
+ s.add_development_dependency 'ruby-prof' unless defined?(JRUBY_VERSION)
59
+ s.add_development_dependency 'shoulda-context'
60
+ s.add_development_dependency 'simplecov'
61
+ s.add_development_dependency 'test-unit'
62
+ s.add_development_dependency 'turn'
63
+ s.add_development_dependency 'yard'
67
64
  end
@@ -75,7 +75,6 @@ class NoteRepository
75
75
  client Elasticsearch::Client.new url: ENV['ELASTICSEARCH_URL'], log: true
76
76
 
77
77
  index_name :notes
78
- document_type :note
79
78
 
80
79
  mapping do
81
80
  indexes :text, analyzer: 'snowball'
@@ -90,7 +90,7 @@ class Elasticsearch::Persistence::ExampleApplicationTest < Test::Unit::TestCase
90
90
  app.settings.repository.client = Elasticsearch::Client.new \
91
91
  hosts: [{ host: 'localhost', port: ENV.fetch('TEST_CLUSTER_PORT', 9250)}],
92
92
  log: true
93
- app.settings.repository.client.transport.transport.logger.formatter = proc { |s, d, p, m| "\e[2m#{m}\n\e[0m" }
93
+ app.settings.repository.client.transport.logger.formatter = proc { |s, d, p, m| "\e[2m#{m}\n\e[0m" }
94
94
  app.settings.repository.create_index! force: true
95
95
  app.settings.repository.client.cluster.health wait_for_status: 'yellow'
96
96
  end
@@ -23,7 +23,6 @@ module Elasticsearch
23
23
  #
24
24
  # @since 6.0.0
25
25
  module DSL
26
-
27
26
  def self.included(base)
28
27
  base.send(:extend, Elasticsearch::Model::Indexing::ClassMethods)
29
28
  base.send(:extend, ClassMethods)
@@ -34,19 +33,6 @@ module Elasticsearch
34
33
  #
35
34
  # @since 6.0.0
36
35
  module ClassMethods
37
-
38
- # Get or set the class-level document type setting.
39
- #
40
- # @example
41
- # MyRepository.document_type
42
- #
43
- # @return [ String, Symbol ] _type The repository's document type.
44
- #
45
- # @since 6.0.0
46
- def document_type(_type = nil)
47
- @document_type ||= _type
48
- end
49
-
50
36
  # Get or set the class-level index name setting.
51
37
  #
52
38
  # @example
@@ -64,7 +64,6 @@ module Elasticsearch
64
64
  #
65
65
  def exists?(id, options={})
66
66
  request = { index: index_name, id: id }
67
- request[:type] = document_type if document_type
68
67
  client.exists(request.merge(options))
69
68
  end
70
69
 
@@ -84,10 +83,9 @@ module Elasticsearch
84
83
  #
85
84
  def __find_one(id, options={})
86
85
  request = { index: index_name, id: id }
87
- request[:type] = document_type if document_type
88
86
  document = client.get(request.merge(options))
89
87
  deserialize(document)
90
- rescue Elasticsearch::Transport::Transport::Errors::NotFound => e
88
+ rescue Elastic::Transport::Transport::Errors::NotFound => e
91
89
  raise DocumentNotFound, e.message, caller
92
90
  end
93
91
 
@@ -95,7 +93,6 @@ module Elasticsearch
95
93
  #
96
94
  def __find_many(ids, options={})
97
95
  request = { index: index_name, body: { ids: ids } }
98
- request[:type] = document_type if document_type
99
96
  documents = client.mget(request.merge(options))
100
97
  documents[DOCS].map do |document|
101
98
  deserialize(document) if document[FOUND]
@@ -60,8 +60,7 @@ module Elasticsearch
60
60
  # @return [Elasticsearch::Persistence::Repository::Response::Results]
61
61
  #
62
62
  def search(query_or_definition, options={})
63
- request = { index: index_name,
64
- type: document_type }
63
+ request = { index: index_name }
65
64
  if query_or_definition.respond_to?(:to_hash)
66
65
  request[:body] = query_or_definition.to_hash
67
66
  elsif query_or_definition.is_a?(String)
@@ -98,8 +97,7 @@ module Elasticsearch
98
97
  #
99
98
  def count(query_or_definition=nil, options={})
100
99
  query_or_definition ||= { query: { match_all: {} } }
101
- request = { index: index_name,
102
- type: document_type }
100
+ request = { index: index_name }
103
101
 
104
102
  if query_or_definition.respond_to?(:to_hash)
105
103
  request[:body] = query_or_definition.to_hash
@@ -27,7 +27,7 @@ module Elasticsearch
27
27
  #
28
28
  # @example
29
29
  # repository.save(myobject)
30
- # => {"_index"=>"...", "_type"=>"...", "_id"=>"...", "_version"=>1, "created"=>true}
30
+ # => {"_index"=>"...", "_id"=>"...", "_version"=>1, "created"=>true}
31
31
  #
32
32
  # @param [ Object ] document The document to save into Elasticsearch.
33
33
  # @param [ Hash ] options The save request options.
@@ -40,7 +40,6 @@ module Elasticsearch
40
40
  request = { index: index_name,
41
41
  id: id,
42
42
  body: serialized }
43
- request[:type] = document_type if document_type
44
43
  client.index(request.merge(options))
45
44
  end
46
45
 
@@ -49,12 +48,12 @@ module Elasticsearch
49
48
  # @example Update the document with partial data
50
49
  #
51
50
  # repository.update id: 1, title: 'UPDATED', tags: []
52
- # # => {"_index"=>"...", "_type"=>"...", "_id"=>"1", "_version"=>2}
51
+ # # => {"_index"=>"...", "_id"=>"1", "_version"=>2}
53
52
  #
54
53
  # @example Update the document with a script
55
54
  #
56
55
  # repository.update 1, script: 'ctx._source.views += 1'
57
- # # => {"_index"=>"...", "_type"=>"...", "_id"=>"1", "_version"=>3}
56
+ # # => {"_index"=>"...", "_id"=>"1", "_version"=>3}
58
57
  #
59
58
  # @param [ Object ] document_or_id The document to update or the id of the document to update.
60
59
  # @param [ Hash ] options The update request options.
@@ -65,7 +64,6 @@ module Elasticsearch
65
64
  if document_or_id.is_a?(String) || document_or_id.is_a?(Integer)
66
65
  id = document_or_id
67
66
  body = options
68
- type = document_type
69
67
  else
70
68
  document = serialize(document_or_id)
71
69
  id = __extract_id_from_document(document)
@@ -74,9 +72,8 @@ module Elasticsearch
74
72
  else
75
73
  body = { doc: document }.merge(options)
76
74
  end
77
- type = document.delete(:type) || document_type
78
75
  end
79
- client.update(index: index_name, id: id, type: type, body: body)
76
+ client.update(index: index_name, id: id, body: body)
80
77
  end
81
78
 
82
79
  # Remove the serialized object or document with specified ID from Elasticsearch
@@ -84,7 +81,7 @@ module Elasticsearch
84
81
  # @example Remove the document with ID 1
85
82
  #
86
83
  # repository.delete(1)
87
- # # => {"_index"=>"...", "_type"=>"...", "_id"=>"1", "_version"=>4}
84
+ # # => {"_index"=>"...", "_id"=>"1", "_version"=>4}
88
85
  #
89
86
  # @param [ Object ] document_or_id The document to delete or the id of the document to delete.
90
87
  # @param [ Hash ] options The delete request options.
@@ -98,7 +95,7 @@ module Elasticsearch
98
95
  serialized = serialize(document_or_id)
99
96
  id = __get_id_from_document(serialized)
100
97
  end
101
- client.delete({ index: index_name, type: document_type, id: id }.merge(options))
98
+ client.delete({ index: index_name, id: id }.merge(options))
102
99
  end
103
100
  end
104
101
  end
@@ -58,7 +58,6 @@ module Elasticsearch
58
58
  # @param [ Proc ] block A block to evaluate on the new repository instance.
59
59
  #
60
60
  # @option options [ Symbol, String ] :index_name The name of the index.
61
- # @option options [ Symbol, String ] :document_type The type of documents persisted in this repository.
62
61
  # @option options [ Symbol, String ] :client The client used to handle requests to and from Elasticsearch.
63
62
  # @option options [ Symbol, String ] :klass The class used to instantiate an object when documents are
64
63
  # deserialized. The default is nil, in which case the raw document will be returned as a Hash.
@@ -95,7 +94,6 @@ module Elasticsearch
95
94
  # @param [ Hash ] options The options to use.
96
95
  #
97
96
  # @option options [ Symbol, String ] :index_name The name of the index.
98
- # @option options [ Symbol, String ] :document_type The type of documents persisted in this repository.
99
97
  # @option options [ Symbol, String ] :client The client used to handle requests to and from Elasticsearch.
100
98
  # @option options [ Symbol, String ] :klass The class used to instantiate an object when documents are
101
99
  # deserialized. The default is nil, in which case the raw document will be returned as a Hash.
@@ -121,19 +119,6 @@ module Elasticsearch
121
119
  Elasticsearch::Client.new
122
120
  end
123
121
 
124
- # Get the document type used by the repository object.
125
- #
126
- # @example
127
- # repository.document_type
128
- #
129
- # @return [ String, Symbol ] The repository's document type.
130
- #
131
- # @since 6.0.0
132
- def document_type
133
- @document_type ||= @options[:document_type] ||
134
- __get_class_value(:document_type)
135
- end
136
-
137
122
  # Get the index name used by the repository.
138
123
  #
139
124
  # @example
@@ -180,7 +165,6 @@ module Elasticsearch
180
165
  def mapping(*args)
181
166
  @memoized_mapping ||= @options[:mapping] || (begin
182
167
  if _mapping = __get_class_value(:mapping)
183
- _mapping.instance_variable_set(:@type, document_type)
184
168
  _mapping
185
169
  end
186
170
  end) || (super && @mapping)
@@ -229,7 +213,7 @@ module Elasticsearch
229
213
  #
230
214
  # @since 6.0.0
231
215
  def inspect
232
- "#<#{self.class}:0x#{object_id} index_name=#{index_name} document_type=#{document_type} klass=#{klass}>"
216
+ "#<#{self.class}:0x#{object_id} index_name=#{index_name} klass=#{klass}>"
233
217
  end
234
218
 
235
219
  private
@@ -17,6 +17,6 @@
17
17
 
18
18
  module Elasticsearch
19
19
  module Persistence
20
- VERSION = '7.2.1'
20
+ VERSION = '8.0.0'.freeze
21
21
  end
22
22
  end