Commit 37f78b59fad7168698c52acb464717f2dd5e5dca

Authored by Andrew Kane
1 parent 9623c51e

Removed mapping of id to _id with order option [skip ci]

CHANGELOG.md
... ... @@ -4,6 +4,7 @@
4 4 - Raise error when `search` called on relations
5 5 - Raise `ArgumentError` (instead of warning) for invalid regular expression modifiers
6 6 - Raise `ArgumentError` instead of `RuntimeError` for unknown operators
  7 +- Removed mapping of `id` to `_id` with `order` option
7 8 - Dropped support for Ruby < 2.6 and Active Record < 5.2
8 9 - Dropped support for NoBrainer and Cequel
9 10 - Dropped support for `faraday_middleware-aws-signers-v4` (use `faraday_middleware-aws-sigv4` instead)
... ...
lib/searchkick/query.rb
... ... @@ -873,11 +873,7 @@ module Searchkick
873 873 end
874 874  
875 875 def set_order(payload)
876   - order = options[:order].is_a?(Enumerable) ? options[:order] : {options[:order] => :asc}
877   - id_field = :_id
878   - # TODO no longer map id to _id in Searchkick 5
879   - # since sorting on _id is deprecated in Elasticsearch
880   - payload[:sort] = order.is_a?(Array) ? order : Hash[order.map { |k, v| [k.to_s == "id" ? id_field : k, v] }]
  876 + payload[:sort] = options[:order].is_a?(Enumerable) ? options[:order] : {options[:order] => :asc}
881 877 end
882 878  
883 879 def where_filters(where)
... ...
test/order_test.rb
... ... @@ -11,20 +11,6 @@ class OrderTest &lt; Minitest::Test
11 11 assert_order "product", ["Product A", "Product B", "Product C", "Product D"], order: "name"
12 12 end
13 13  
14   - # TODO no longer map id to _id in Searchkick 5
15   - # since sorting on _id is deprecated in Elasticsearch
16   - def test_id
17   - store_names ["Product A", "Product B"]
18   - product_a = Product.where(name: "Product A").first
19   - product_b = Product.where(name: "Product B").first
20   - _, stderr = capture_io do
21   - assert_order "product", [product_a, product_b].sort_by { |r| r.id.to_s }.map(&:name), order: {id: :asc}
22   - end
23   - unless Searchkick.server_below?("7.6.0")
24   - assert_match "Loading the fielddata on the _id field is deprecated", stderr
25   - end
26   - end
27   -
28 14 def test_multiple
29 15 store [
30 16 {name: "Product A", color: "blue", store_id: 1},
... ...