searchkick 5.1.1 → 5.2.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: dcb83468ee84892db5a2484a3d5ec75bb9b8964fd0a9b9c3ab73b735f8467390
4
- data.tar.gz: d309602fe457bf39fd170d2bcf446119d4a2a93ea669df833b21bf1b0ef76a4b
3
+ metadata.gz: bea8e9ff3ed31f14751a19c74ecfa76f276d0e1e6d12803203bd023e0aba6926
4
+ data.tar.gz: 060ab7e11f615f1b0b32494e38eb35135ee6d5b1df203bb7dadd04b9e9eb8886
5
5
  SHA512:
6
- metadata.gz: 196f076e15d708c89ae13ddb96ef7fce4cd19de9b5cfef639ea68e8886e81a66b1f01ed1f5453065ad58c617a42aceeda493ac6bc5c34e89cb08956be35eb87d
7
- data.tar.gz: ac58225f370165c19a9378c3c84e07aedc297ae7f263cb1c027f5536184e4fe336b540726e6adf6ac1aca6802e424026a448d783d1e4a4279e03db01931b707c
6
+ metadata.gz: 80e3c1e347ddd12750e1e9ebba5ef15c49915cbff4c1999733dc8663e750ad9aafc2a265865593572f5fec3ec9c6f0d9a0992a204154102f3829d75f0459cd6d
7
+ data.tar.gz: a2d8dc9d74f1cc9a744a9bdcbb735e078a4f80114d441df26953e1b32e6a7f9ff5847c6619e540a468dabc933811f1e9bc47396bbaa34103942102eb253ddedb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 5.2.0 (2023-02-08)
2
+
3
+ - Added model name to warning about missing records
4
+ - Fixed unnecessary data loading when reindexing relations with `:async` and `:queue` modes
5
+
6
+ ## 5.1.2 (2023-01-29)
7
+
8
+ - Fixed error with missing point in time
9
+
1
10
  ## 5.1.1 (2022-12-05)
2
11
 
3
12
  - Added support for strings for `offset` and `per_page`
data/README.md CHANGED
@@ -43,8 +43,6 @@ Check out [Searchjoy](https://github.com/ankane/searchjoy) for analytics and [Au
43
43
  - [Reference](#reference)
44
44
  - [Contributing](#contributing)
45
45
 
46
- Searchkick 5.0 was recently released! See [how to upgrade](#upgrading)
47
-
48
46
  ## Getting Started
49
47
 
50
48
  Install [Elasticsearch](https://www.elastic.co/downloads/elasticsearch) or [OpenSearch](https://opensearch.org/downloads.html). For Homebrew, use:
@@ -199,7 +199,11 @@ module Searchkick
199
199
  def handle_error(e)
200
200
  status_code = e.message[1..3].to_i
201
201
  if status_code == 404
202
- raise MissingIndexError, "Index missing - run #{reindex_command}"
202
+ if e.message.include?("No search context found for id")
203
+ raise MissingIndexError, "No search context found for id"
204
+ else
205
+ raise MissingIndexError, "Index missing - run #{reindex_command}"
206
+ end
203
207
  elsif status_code == 500 && (
204
208
  e.message.include?("IllegalArgumentException[minimumSimilarity >= 1]") ||
205
209
  e.message.include?("No query registered for [multi_match]") ||
@@ -14,12 +14,17 @@ module Searchkick
14
14
  relation = relation.search_import
15
15
  end
16
16
 
17
- # remove unneeded loading for async
18
- if mode == :async
17
+ # remove unneeded loading for async and queue
18
+ if mode == :async || mode == :queue
19
19
  if relation.respond_to?(:primary_key)
20
- relation = relation.select(relation.primary_key).except(:includes, :preload)
20
+ relation = relation.except(:includes, :preload)
21
+ unless mode == :queue && relation.klass.method_defined?(:search_routing)
22
+ relation = relation.except(:select).select(relation.primary_key)
23
+ end
21
24
  elsif relation.respond_to?(:only)
22
- relation = relation.only(:_id)
25
+ unless mode == :queue && relation.klass.method_defined?(:search_routing)
26
+ relation = relation.only(:_id)
27
+ end
23
28
  end
24
29
  end
25
30
 
@@ -304,7 +304,7 @@ module Searchkick
304
304
  def build_hits
305
305
  @build_hits ||= begin
306
306
  if missing_records.any?
307
- Searchkick.warn("Records in search index do not exist in database: #{missing_records.map { |v| v[:id] }.join(", ")}")
307
+ Searchkick.warn("Records in search index do not exist in database: #{missing_records.map { |v| "#{v[:model].model_name} #{v[:id]}" }.join(", ")}")
308
308
  end
309
309
  with_hit_and_missing_records[0]
310
310
  end
@@ -1,3 +1,3 @@
1
1
  module Searchkick
2
- VERSION = "5.1.1"
2
+ VERSION = "5.2.0"
3
3
  end
data/lib/searchkick.rb CHANGED
@@ -10,27 +10,27 @@ require "hashie"
10
10
  require "forwardable"
11
11
 
12
12
  # modules
13
- require "searchkick/controller_runtime"
14
- require "searchkick/index"
15
- require "searchkick/index_cache"
16
- require "searchkick/index_options"
17
- require "searchkick/indexer"
18
- require "searchkick/hash_wrapper"
19
- require "searchkick/log_subscriber"
20
- require "searchkick/model"
21
- require "searchkick/multi_search"
22
- require "searchkick/query"
23
- require "searchkick/reindex_queue"
24
- require "searchkick/record_data"
25
- require "searchkick/record_indexer"
26
- require "searchkick/relation"
27
- require "searchkick/relation_indexer"
28
- require "searchkick/results"
29
- require "searchkick/version"
30
- require "searchkick/where"
13
+ require_relative "searchkick/controller_runtime"
14
+ require_relative "searchkick/index"
15
+ require_relative "searchkick/index_cache"
16
+ require_relative "searchkick/index_options"
17
+ require_relative "searchkick/indexer"
18
+ require_relative "searchkick/hash_wrapper"
19
+ require_relative "searchkick/log_subscriber"
20
+ require_relative "searchkick/model"
21
+ require_relative "searchkick/multi_search"
22
+ require_relative "searchkick/query"
23
+ require_relative "searchkick/reindex_queue"
24
+ require_relative "searchkick/record_data"
25
+ require_relative "searchkick/record_indexer"
26
+ require_relative "searchkick/relation"
27
+ require_relative "searchkick/relation_indexer"
28
+ require_relative "searchkick/results"
29
+ require_relative "searchkick/version"
30
+ require_relative "searchkick/where"
31
31
 
32
32
  # integrations
33
- require "searchkick/railtie" if defined?(Rails)
33
+ require_relative "searchkick/railtie" if defined?(Rails)
34
34
 
35
35
  module Searchkick
36
36
  # requires faraday
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: searchkick
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.1
4
+ version: 5.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-05 00:00:00.000000000 Z
11
+ date: 2023-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
94
  requirements: []
95
- rubygems_version: 3.3.7
95
+ rubygems_version: 3.4.6
96
96
  signing_key:
97
97
  specification_version: 4
98
98
  summary: Intelligent search made easy with Rails and Elasticsearch or OpenSearch