elastic-enterprise-search 7.15.0 → 7.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/compatibility/Gemfile +23 -0
- data/.github/workflows/compatibility.yml +20 -0
- data/docs/guide/release_notes/714.asciidoc +12 -0
- data/docs/guide/release_notes/715.asciidoc +12 -0
- data/elastic-enterprise-search.gemspec +1 -1
- data/lib/elastic/enterprise-search/client.rb +12 -1
- data/lib/elastic/enterprise-search/version.rb +1 -1
- data/spec/integration/app-search/api_key_spec.rb +1 -1
- data/spec/integration/app-search/api_logs_spec.rb +1 -1
- data/spec/integration/app-search/app_search_helper.rb +13 -1
- data/spec/integration/app-search/count_analytics_spec.rb +1 -1
- data/spec/integration/app-search/crawl_requests_spec.rb +1 -1
- data/spec/integration/app-search/crawler_crawl_rule_spec.rb +1 -1
- data/spec/integration/app-search/crawler_domain_spec.rb +1 -1
- data/spec/integration/app-search/crawler_entry_point_spec.rb +2 -14
- data/spec/integration/app-search/crawler_metrics_spec.rb +1 -1
- data/spec/integration/app-search/crawler_overview_spec.rb +1 -1
- data/spec/integration/app-search/crawler_process_crawl_denied_urls_spec.rb +1 -1
- data/spec/integration/app-search/crawler_process_crawl_spec.rb +1 -1
- data/spec/integration/app-search/crawler_scheduling_spec.rb +2 -14
- data/spec/integration/app-search/crawler_sitemap_spec.rb +1 -1
- data/spec/integration/app-search/crawler_urls_spec.rb +1 -1
- data/spec/integration/app-search/curations_spec.rb +1 -1
- data/spec/integration/app-search/documents_spec.rb +1 -1
- data/spec/integration/app-search/engines_spec.rb +2 -1
- data/spec/integration/app-search/log_clickthrough_spec.rb +1 -1
- data/spec/integration/app-search/query_suggestion_spec.rb +1 -1
- data/spec/integration/app-search/schema_spec.rb +1 -1
- data/spec/integration/app-search/search_and_multiple_search_spec.rb +1 -1
- data/spec/integration/app-search/search_settings_spec.rb +1 -1
- data/spec/integration/app-search/synonyms_spec.rb +1 -1
- data/spec/integration/app-search/top_clicks_analytics_spec.rb +1 -1
- data/spec/integration/app-search/top_queries_analytics_spec.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af43f95c32828fa2a4c5d44f12f430ebaf6ca3ec3fee1f1d6c48b02348e15bee
|
4
|
+
data.tar.gz: eb3df761787c3e537cff53bb50c2a44eedacb4dc99c4c609b303bd1ef3734c3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50e6b28a6b395d26ea2bde7a00211b381d85d3483cda75b6d254d53b14f076c07f88306e2dea718a409ad8412faedfd2dd59062e4a75712bd5071ea6fba0901a
|
7
|
+
data.tar.gz: 8a38e574a9a7877afa2aa7bcc1ca377ebff4d71c122dec2c8b43bf9e441ef89f908a42055b42f111e9bfa1db24423819e4da867f8575f74350f7adf91d2dc810
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
2
|
+
# license agreements. See the NOTICE file distributed with
|
3
|
+
# this work for additional information regarding copyright
|
4
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
5
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
6
|
+
# not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
|
18
|
+
# frozen_string_literal: true
|
19
|
+
|
20
|
+
source 'https://rubygems.org'
|
21
|
+
|
22
|
+
gem 'elasticsearch', ENV['es-version']
|
23
|
+
gem 'elastic-enterprise-search', path: File.expand_path('../../', __dir__)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
name: Compatibility with Elasticsearch
|
2
|
+
on: [push, pull_request]
|
3
|
+
|
4
|
+
jobs:
|
5
|
+
elasticsearch:
|
6
|
+
env:
|
7
|
+
ES_VERSION: ${{ matrix.es_version }}
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
es_version: [ 7.11, 7.12, 7.13, 7.14, 7.15 ]
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
- uses: ruby/setup-ruby@v1
|
15
|
+
with:
|
16
|
+
ruby-version: 3.0
|
17
|
+
- name: Build Gemfile with Elasticsearch gem
|
18
|
+
run: |
|
19
|
+
ruby -v
|
20
|
+
cd ./.github/compatibility/ && bundle
|
@@ -1,4 +1,16 @@
|
|
1
1
|
[[release_notes_714]]
|
2
|
+
=== 7.14 Release notes
|
3
|
+
|
4
|
+
[discrete]
|
5
|
+
[[release_notes_7141]]
|
6
|
+
=== 7.14.1 Release notes
|
7
|
+
|
8
|
+
==== Dependency fix
|
9
|
+
|
10
|
+
Updates dependency on `elasticsearch-transport` to be more open. At least 7.11 is required, but this way it can be used with different versions of the `elasticsearch` gem (bigger than or equal to `7.11`) in the same project, without a conflict in `elasticsearch-transport`. When instantiating transport, we now check if version is `< 7.14` so we use the right class.
|
11
|
+
|
12
|
+
[discrete]
|
13
|
+
[[release_notes_7140]]
|
2
14
|
=== 7.14.0 Release notes
|
3
15
|
|
4
16
|
[discrete]
|
@@ -1,4 +1,16 @@
|
|
1
1
|
[[release_notes_715]]
|
2
|
+
=== 7.15 Release notes
|
3
|
+
|
4
|
+
[discrete]
|
5
|
+
[[release_notes_7151]]
|
6
|
+
=== 7.15.1 Release notes
|
7
|
+
|
8
|
+
==== Dependency fix
|
9
|
+
|
10
|
+
Updates dependency on `elasticsearch-transport` to be more open. At least 7.11 is required, but this way it can be used with different versions of the `elasticsearch` gem (bigger than or equal to `7.11`) in the same project, without a conflict in `elasticsearch-transport`. When instantiating transport, we now check if version is `< 7.14` so we use the right class.
|
11
|
+
|
12
|
+
[discrete]
|
13
|
+
[[release_notes_7150]]
|
2
14
|
=== 7.15.0 Release notes
|
3
15
|
|
4
16
|
[discrete]
|
@@ -47,7 +47,7 @@ Gem::Specification.new do |s|
|
|
47
47
|
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
48
48
|
s.require_paths = ['lib']
|
49
49
|
|
50
|
-
s.add_dependency 'elasticsearch-transport', '
|
50
|
+
s.add_dependency 'elasticsearch-transport', '>= 7.11'
|
51
51
|
s.add_runtime_dependency 'jwt', '>= 1.5', '< 3.0'
|
52
52
|
s.add_development_dependency 'awesome_print'
|
53
53
|
s.add_development_dependency 'byebug' unless defined?(JRUBY_VERSION)
|
@@ -67,7 +67,7 @@ module Elastic
|
|
67
67
|
|
68
68
|
def transport
|
69
69
|
@options[:transport] ||
|
70
|
-
|
70
|
+
transport_klass.new(
|
71
71
|
host: host,
|
72
72
|
log: log,
|
73
73
|
logger: logger,
|
@@ -110,6 +110,17 @@ module Elastic
|
|
110
110
|
|
111
111
|
@options[:host]
|
112
112
|
end
|
113
|
+
|
114
|
+
private
|
115
|
+
|
116
|
+
def transport_klass
|
117
|
+
case Elasticsearch::Transport::VERSION
|
118
|
+
when /7\.1[123]/
|
119
|
+
Elasticsearch::Client
|
120
|
+
else
|
121
|
+
Elasticsearch::Transport::Client
|
122
|
+
end
|
123
|
+
end
|
113
124
|
end
|
114
125
|
end
|
115
126
|
end
|
@@ -66,7 +66,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
66
66
|
engine_name = 'update-engine'
|
67
67
|
body = { name: key_name, type: 'private', read: true, write: true, access_all_engines: true }
|
68
68
|
client.create_api_key(body: body)
|
69
|
-
|
69
|
+
create_engine(engine_name)
|
70
70
|
|
71
71
|
body = { name: key_name, type: 'private', read: true, write: true, engines: [engine_name] }
|
72
72
|
attempts = 0
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:api_key_name) { 'logs-api-key' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
# Create API Key Client to log events:
|
30
30
|
body = { name: api_key_name, type: 'private', read: true, write: true, access_all_engines: true }
|
31
31
|
api_key = client.create_api_key(body: body).body['key']
|
@@ -18,6 +18,7 @@
|
|
18
18
|
# frozen_string_literal: true
|
19
19
|
|
20
20
|
require 'spec_helper'
|
21
|
+
require 'logger'
|
21
22
|
|
22
23
|
# App Search Integration tests Client Configuration
|
23
24
|
def client
|
@@ -34,6 +35,17 @@ def delete_engines
|
|
34
35
|
engines = client.list_engines.body['results']
|
35
36
|
engines.each do |engine|
|
36
37
|
client.delete_engine(engine['name'])
|
38
|
+
# Gives time to the server to sync:
|
39
|
+
sleep 2
|
37
40
|
end
|
38
|
-
|
41
|
+
end
|
42
|
+
|
43
|
+
def create_engine(name)
|
44
|
+
client.create_engine(name: name)
|
45
|
+
rescue Elasticsearch::Transport::Transport::Errors::BadRequest => e
|
46
|
+
raise e unless e.message.match(/Name is already taken/)
|
47
|
+
|
48
|
+
Logger.new($stdout).info("Engine '#{name}' had already been created, giving time for the server to sync.")
|
49
|
+
sleep 5
|
50
|
+
client.create_engine(name: name)
|
39
51
|
end
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
body = { name: name }
|
30
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
31
31
|
@domain = response.body
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
body = { name: name }
|
30
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
31
31
|
@domain = response.body
|
@@ -25,26 +25,14 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
29
|
-
loop do
|
30
|
-
attempts += 1
|
31
|
-
client.create_engine(name: engine_name)
|
32
|
-
break if attempts > 9
|
33
|
-
rescue Elasticsearch::Transport::Transport::Errors::BadRequest => e
|
34
|
-
if e.message.match?(/Name is already taken/)
|
35
|
-
sleep 1
|
36
|
-
next
|
37
|
-
end
|
38
|
-
else
|
39
|
-
break
|
40
|
-
end
|
28
|
+
create_engine(engine_name)
|
41
29
|
body = { name: name }
|
42
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
43
31
|
@domain = response.body
|
44
32
|
end
|
45
33
|
|
46
34
|
after do
|
47
|
-
|
35
|
+
delete_engines
|
48
36
|
end
|
49
37
|
|
50
38
|
it 'creates an entry point' do
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
body = { name: name }
|
30
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
31
31
|
@domain = response.body
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
body = { name: name }
|
30
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
31
31
|
@domain = response.body
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
body = { name: name }
|
30
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
31
31
|
@domain = response.body
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
body = { name: name }
|
30
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
31
31
|
@domain = response.body
|
@@ -26,26 +26,14 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
26
26
|
let(:name) { 'https://www.elastic.co' }
|
27
27
|
|
28
28
|
before do
|
29
|
-
|
30
|
-
loop do
|
31
|
-
attempts += 1
|
32
|
-
client.create_engine(name: engine_name)
|
33
|
-
break if attempts > 9
|
34
|
-
rescue Elasticsearch::Transport::Transport::Errors::BadRequest => e
|
35
|
-
if e.message.match?(/Name is already taken/)
|
36
|
-
sleep 1
|
37
|
-
next
|
38
|
-
end
|
39
|
-
else
|
40
|
-
break
|
41
|
-
end
|
29
|
+
create_engine(engine_name)
|
42
30
|
body = { name: name }
|
43
31
|
response = client.create_crawler_domain(engine_name, body: body)
|
44
32
|
@domain = response.body
|
45
33
|
end
|
46
34
|
|
47
35
|
after do
|
48
|
-
|
36
|
+
delete_engines
|
49
37
|
end
|
50
38
|
|
51
39
|
it 'sets a crawl schedule' do
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
body = { name: name }
|
30
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
31
31
|
@domain = response.body
|
@@ -25,7 +25,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
25
25
|
let(:name) { 'https://www.elastic.co' }
|
26
26
|
|
27
27
|
before do
|
28
|
-
|
28
|
+
create_engine(engine_name)
|
29
29
|
body = { name: name }
|
30
30
|
response = client.create_crawler_domain(engine_name, body: body)
|
31
31
|
@domain = response.body
|
@@ -24,7 +24,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
24
24
|
let(:engine_name) { 'books' }
|
25
25
|
|
26
26
|
before do
|
27
|
-
|
27
|
+
create_engine(engine_name)
|
28
28
|
documents = [
|
29
29
|
{ title: 'Jungle Tales', author: 'Horacio Quiroga' },
|
30
30
|
{ title: 'The Jungle Book', author: 'Rudyard Kipling' }
|
@@ -58,9 +58,9 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'retrieves an engine by name' do
|
61
|
+
engine_name = 'retrieve-engine'
|
61
62
|
client.create_engine(name: engine_name)
|
62
63
|
response = client.engine(engine_name)
|
63
|
-
|
64
64
|
expect(response.status).to eq 200
|
65
65
|
expect(response.body).to eq(
|
66
66
|
{ 'name' => engine_name, 'type' => 'default', 'language' => nil, 'document_count' => 0 }
|
@@ -68,6 +68,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it 'deletes an engine' do
|
71
|
+
engine_name = 'delete-engine'
|
71
72
|
client.create_engine(name: engine_name)
|
72
73
|
response = client.delete_engine(engine_name)
|
73
74
|
expect(response.status).to eq 200
|
@@ -23,7 +23,7 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
|
|
23
23
|
let(:engine_name) { 'schema' }
|
24
24
|
|
25
25
|
before do
|
26
|
-
|
26
|
+
create_engine(engine_name)
|
27
27
|
client.index_documents(engine_name, documents: [{ title: 'test', director: 'someone' }])
|
28
28
|
end
|
29
29
|
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic-enterprise-search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.15.
|
4
|
+
version: 7.15.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fernando Briano
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: elasticsearch-transport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 7.
|
19
|
+
version: '7.11'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 7.
|
26
|
+
version: '7.11'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: jwt
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -175,7 +175,9 @@ files:
|
|
175
175
|
- ".ci/run-tests"
|
176
176
|
- ".ci/test-matrix.yml"
|
177
177
|
- ".github/check_license_headers.rb"
|
178
|
+
- ".github/compatibility/Gemfile"
|
178
179
|
- ".github/license-header.txt"
|
180
|
+
- ".github/workflows/compatibility.yml"
|
179
181
|
- ".github/workflows/license.yml"
|
180
182
|
- ".github/workflows/rubocop.yml"
|
181
183
|
- ".github/workflows/testing.yml"
|