elastic-enterprise-search 7.12.1 → 7.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ci/functions/imports.sh +1 -0
- data/.ci/jobs/defaults.yml +4 -0
- data/.ci/jobs/elastic+enterprise-search-ruby+7.10.0.beta.1.yml +12 -0
- data/.ci/jobs/{elastic+enterprise-search-ruby+7.11.yml → elastic+enterprise-search-ruby+main.yml} +4 -4
- data/.ci/make.sh +162 -0
- data/.ci/run-repository.sh +2 -1
- data/.ci/test-matrix.yml +5 -3
- data/{spec/app-search/api_logs_spec.rb → .github/check_license_headers.rb} +13 -16
- data/.github/license-header.txt +16 -0
- data/.github/workflows/license.yml +13 -0
- data/.github/workflows/testing.yml +1 -1
- data/CONTRIBUTING.md +1 -1
- data/README.md +1 -1
- data/Rakefile +20 -0
- data/docs/guide/app-search-api.asciidoc +157 -1
- data/docs/guide/connecting.asciidoc +47 -1
- data/docs/guide/overview.asciidoc +3 -3
- data/docs/guide/release_notes/712.asciidoc +0 -10
- data/docs/guide/release_notes/713.asciidoc +21 -0
- data/docs/guide/release_notes/714.asciidoc +21 -0
- data/docs/guide/release_notes/715.asciidoc +36 -0
- data/docs/guide/release_notes/index.asciidoc +6 -0
- data/docs/guide/workplace-search-api.asciidoc +115 -2
- data/elastic-enterprise-search.gemspec +1 -1
- data/lib/elastic/app-search/api/add_meta_engine_source.rb +3 -2
- data/lib/elastic/app-search/api/api_key.rb +52 -0
- data/lib/elastic/app-search/api/api_logs.rb +14 -13
- data/lib/elastic/app-search/api/count_analytics.rb +7 -6
- data/lib/elastic/app-search/api/crawler_active_crawl_request.rb +51 -0
- data/lib/elastic/app-search/api/crawler_crawl_request.rb +54 -0
- data/lib/elastic/app-search/api/crawler_crawl_schedule.rb +51 -0
- data/lib/elastic/app-search/api/crawler_domain.rb +54 -0
- data/lib/elastic/app-search/api/crawler_domain_validation_result.rb +48 -0
- data/lib/elastic/app-search/api/crawler_metrics.rb +48 -0
- data/lib/elastic/app-search/api/crawler_overview.rb +51 -0
- data/lib/elastic/app-search/api/crawler_process_crawl.rb +54 -0
- data/lib/elastic/app-search/api/crawler_process_crawl_denied_urls.rb +54 -0
- data/lib/elastic/app-search/api/crawler_url_extraction_result.rb +52 -0
- data/lib/elastic/app-search/api/crawler_url_tracing_result.rb +52 -0
- data/lib/elastic/app-search/api/crawler_url_validation_result.rb +52 -0
- data/lib/elastic/app-search/api/crawler_user_agent.rb +48 -0
- data/lib/elastic/app-search/api/create_api_key.rb +57 -0
- data/lib/elastic/app-search/api/create_crawler_crawl_request.rb +51 -0
- data/lib/elastic/app-search/api/create_crawler_crawl_rule.rb +59 -0
- data/lib/elastic/app-search/api/create_crawler_domain.rb +55 -0
- data/lib/elastic/app-search/api/create_crawler_entry_point.rb +56 -0
- data/lib/elastic/app-search/api/create_crawler_process_crawl.rb +53 -0
- data/lib/elastic/app-search/api/create_crawler_sitemap.rb +56 -0
- data/lib/elastic/app-search/api/create_curation.rb +7 -6
- data/lib/elastic/app-search/api/create_engine.rb +9 -7
- data/lib/elastic/app-search/api/create_synonym_set.rb +7 -4
- data/lib/elastic/app-search/api/curation.rb +4 -3
- data/lib/elastic/app-search/api/delete_active_crawl_request.rb +51 -0
- data/lib/elastic/app-search/api/delete_api_key.rb +52 -0
- data/lib/elastic/app-search/api/delete_crawler_active_crawl_request.rb +51 -0
- data/lib/elastic/app-search/api/delete_crawler_crawl_rule.rb +57 -0
- data/lib/elastic/app-search/api/delete_crawler_crawl_schedule.rb +51 -0
- data/lib/elastic/app-search/api/delete_crawler_domain.rb +54 -0
- data/lib/elastic/app-search/api/delete_crawler_entry_point.rb +57 -0
- data/lib/elastic/app-search/api/delete_crawler_sitemap.rb +57 -0
- data/lib/elastic/app-search/api/delete_curation.rb +4 -3
- data/lib/elastic/app-search/api/delete_documents.rb +2 -1
- data/lib/elastic/app-search/api/delete_engine.rb +3 -2
- data/lib/elastic/app-search/api/delete_meta_engine_source.rb +3 -3
- data/lib/elastic/app-search/api/delete_synonym_set.rb +4 -3
- data/lib/elastic/app-search/api/denied_urls.rb +54 -0
- data/lib/elastic/app-search/api/documents.rb +3 -2
- data/lib/elastic/app-search/api/engine.rb +3 -2
- data/lib/elastic/app-search/api/index_documents.rb +3 -2
- data/lib/elastic/app-search/api/list_api_keys.rb +50 -0
- data/lib/elastic/app-search/api/list_crawler_crawl_requests.rb +52 -0
- data/lib/elastic/app-search/api/list_crawler_process_crawls.rb +51 -0
- data/lib/elastic/app-search/api/list_curations.rb +3 -2
- data/lib/elastic/app-search/api/list_documents.rb +3 -2
- data/lib/elastic/app-search/api/list_engines.rb +2 -1
- data/lib/elastic/app-search/api/list_synonym_sets.rb +3 -2
- data/lib/elastic/app-search/api/log_clickthrough.rb +8 -10
- data/lib/elastic/app-search/api/put_api_key.rb +59 -0
- data/lib/elastic/app-search/api/put_crawler_crawl_rule.rb +62 -0
- data/lib/elastic/app-search/api/put_crawler_crawl_schedule.rb +53 -0
- data/lib/elastic/app-search/api/put_crawler_domain.rb +58 -0
- data/lib/elastic/app-search/api/put_crawler_entry_point.rb +59 -0
- data/lib/elastic/app-search/api/put_crawler_sitemap.rb +59 -0
- data/lib/elastic/app-search/api/put_curation.rb +9 -8
- data/lib/elastic/app-search/api/put_documents.rb +3 -3
- data/lib/elastic/app-search/api/put_schema.rb +4 -4
- data/lib/elastic/app-search/api/put_search_settings.rb +6 -2
- data/lib/elastic/app-search/api/put_synonym_set.rb +8 -5
- data/lib/elastic/app-search/api/query_suggestion.rb +7 -7
- data/lib/elastic/app-search/api/reset_search_settings.rb +3 -2
- data/lib/elastic/app-search/api/schema.rb +3 -2
- data/lib/elastic/app-search/api/search.rb +14 -3
- data/lib/elastic/app-search/api/search_settings.rb +3 -2
- data/lib/elastic/app-search/api/synonym_set.rb +4 -3
- data/lib/elastic/app-search/api/top_clicks_analytics.rb +8 -8
- data/lib/elastic/app-search/api/top_queries_analytics.rb +7 -7
- data/lib/elastic/app-search/app_search.rb +0 -10
- data/lib/elastic/enterprise-search/api/health.rb +1 -0
- data/lib/elastic/enterprise-search/api/put_read_only.rb +3 -0
- data/lib/elastic/enterprise-search/api/read_only.rb +1 -0
- data/lib/elastic/enterprise-search/api/version.rb +1 -0
- data/lib/elastic/enterprise-search/client.rb +0 -16
- data/lib/elastic/enterprise-search/request.rb +14 -3
- data/lib/elastic/enterprise-search/version.rb +1 -1
- data/lib/elastic/enterprise_search.rb +11 -0
- data/lib/elastic/workplace-search/api/auto_query_refinement_details.rb +49 -0
- data/lib/elastic/workplace-search/api/command_sync_jobs.rb +53 -0
- data/lib/elastic/workplace-search/api/content_source.rb +49 -0
- data/lib/elastic/workplace-search/api/create_analytics_event.rb +8 -8
- data/lib/elastic/workplace-search/api/create_batch_synonym_sets.rb +50 -0
- data/lib/elastic/workplace-search/api/create_content_source.rb +55 -0
- data/lib/elastic/workplace-search/api/create_external_identity.rb +3 -1
- data/lib/elastic/workplace-search/api/current_user.rb +47 -0
- data/lib/elastic/workplace-search/api/delete_all_documents.rb +49 -0
- data/lib/elastic/workplace-search/api/delete_content_source.rb +49 -0
- data/lib/elastic/workplace-search/api/delete_documents.rb +1 -1
- data/lib/elastic/workplace-search/api/delete_documents_by_query.rb +50 -0
- data/lib/elastic/workplace-search/api/delete_synonym_set.rb +51 -0
- data/lib/elastic/workplace-search/api/document.rb +53 -0
- data/lib/elastic/workplace-search/api/list_content_sources.rb +48 -0
- data/lib/elastic/workplace-search/api/list_synonym_sets.rb +51 -0
- data/lib/elastic/workplace-search/api/put_content_source.rb +58 -0
- data/lib/elastic/workplace-search/api/put_content_source_icons.rb +53 -0
- data/lib/elastic/workplace-search/api/put_external_identity.rb +3 -1
- data/lib/elastic/workplace-search/api/put_synonym_set.rb +53 -0
- data/lib/elastic/workplace-search/api/put_triggers_blocklist.rb +47 -0
- data/lib/elastic/workplace-search/api/search.rb +4 -1
- data/lib/elastic/workplace-search/api/synonym_set.rb +51 -0
- data/lib/elastic/workplace-search/api/triggers_blocklist.rb +45 -0
- data/lib/elastic/workplace-search/workplace_search.rb +0 -10
- data/rake_tasks/unified_release_tasks.rake +46 -0
- data/spec/enterprise-search/client_spec.rb +0 -1
- data/spec/enterprise-search/request_spec.rb +26 -0
- data/spec/integration/app-search/api_key_spec.rb +110 -0
- data/spec/integration/app-search/api_logs_spec.rb +59 -0
- data/spec/integration/app-search/app_search_helper.rb +39 -0
- data/spec/integration/app-search/count_analytics_spec.rb +47 -0
- data/spec/integration/app-search/crawl_requests_spec.rb +86 -0
- data/spec/integration/app-search/crawler_crawl_rule_spec.rb +73 -0
- data/spec/integration/app-search/crawler_domain_spec.rb +82 -0
- data/spec/integration/app-search/crawler_entry_point_spec.rb +89 -0
- data/spec/integration/app-search/crawler_metrics_spec.rb +46 -0
- data/spec/integration/app-search/crawler_overview_spec.rb +45 -0
- data/spec/integration/app-search/crawler_process_crawl_denied_urls_spec.rb +50 -0
- data/spec/integration/app-search/crawler_process_crawl_spec.rb +66 -0
- data/spec/integration/app-search/crawler_scheduling_spec.rb +81 -0
- data/spec/integration/app-search/crawler_sitemap_spec.rb +72 -0
- data/spec/integration/app-search/crawler_urls_spec.rb +60 -0
- data/spec/{app-search/api_count_analytics_spec.rb → integration/app-search/crawler_user_agent_spec.rb} +6 -9
- data/spec/integration/app-search/curations_spec.rb +118 -0
- data/spec/integration/app-search/documents_spec.rb +123 -0
- data/spec/integration/app-search/engines_spec.rb +77 -0
- data/spec/{app-search/api_log_clickthrough_spec.rb → integration/app-search/log_clickthrough_spec.rb} +14 -7
- data/spec/integration/app-search/meta_engines_spec.rb +75 -0
- data/spec/integration/app-search/query_suggestion_spec.rb +50 -0
- data/spec/{app-search/api_schema_spec.rb → integration/app-search/schema_spec.rb} +21 -16
- data/spec/integration/app-search/search_and_multiple_search_spec.rb +67 -0
- data/spec/integration/app-search/search_settings_spec.rb +87 -0
- data/spec/integration/app-search/synonyms_spec.rb +79 -0
- data/spec/{app-search/api_top_clicks_analytics_spec.rb → integration/app-search/top_clicks_analytics_spec.rb} +20 -14
- data/spec/{app-search/api_top_queries_analytics_spec.rb → integration/app-search/top_queries_analytics_spec.rb} +16 -8
- data/spec/integration/enterprise_search_api_spec.rb +4 -0
- data/spec/integration/workplace-search/content_sources_spec.rb +106 -0
- data/spec/integration/workplace-search/documents_spec.rb +95 -0
- data/spec/{workplace-search → integration/workplace-search}/external_identities_spec.rb +37 -24
- data/spec/integration/workplace-search/icon.png +0 -0
- data/spec/integration/workplace-search/permissions_spec.rb +77 -0
- data/spec/integration/workplace-search/synonym_sets_spec.rb +92 -0
- data/spec/integration/workplace-search/triggers_spec.rb +43 -0
- data/spec/{app-search/api_query_suggestion_spec.rb → integration/workplace-search/users_spec.rb} +12 -15
- data/spec/integration/workplace-search/workplace_search_helper.rb +39 -0
- data/spec/webmock_requires.rb +16 -0
- data/spec/workplace-search/client_spec.rb +24 -2
- metadata +112 -83
- data/.ci/jobs/elastic+enterprise-search-ruby+master.yml +0 -12
- data/spec/app-search/api_curations_spec.rb +0 -97
- data/spec/app-search/api_documents_spec.rb +0 -102
- data/spec/app-search/api_engines_spec.rb +0 -67
- data/spec/app-search/api_meta_engines_spec.rb +0 -72
- data/spec/app-search/api_search_and_multi_search_spec.rb +0 -48
- data/spec/app-search/api_search_settings_spec.rb +0 -76
- data/spec/app-search/api_spec_helper.rb +0 -14
- data/spec/app-search/api_synonyms_spec.rb +0 -79
- data/spec/fixtures/vcr/app_search/add_meta_engine_source.yml +0 -109
- data/spec/fixtures/vcr/app_search/api_documents.yml +0 -56
- data/spec/fixtures/vcr/app_search/api_index_documents.yml +0 -57
- data/spec/fixtures/vcr/app_search/api_log_clickthrough.yml +0 -54
- data/spec/fixtures/vcr/app_search/api_logs.yml +0 -70
- data/spec/fixtures/vcr/app_search/api_put_schema.yml +0 -109
- data/spec/fixtures/vcr/app_search/api_put_search_settings.yml +0 -56
- data/spec/fixtures/vcr/app_search/api_query_suggestion.yml +0 -59
- data/spec/fixtures/vcr/app_search/api_reset_search_settings.yml +0 -56
- data/spec/fixtures/vcr/app_search/api_schema.yml +0 -56
- data/spec/fixtures/vcr/app_search/api_search_settings.yml +0 -56
- data/spec/fixtures/vcr/app_search/api_top_clicks_analytics.yml +0 -55
- data/spec/fixtures/vcr/app_search/api_top_clicks_analytics_query.yml +0 -55
- data/spec/fixtures/vcr/app_search/api_top_queries_analytics.yml +0 -55
- data/spec/fixtures/vcr/app_search/count_analytics.yml +0 -55
- data/spec/fixtures/vcr/app_search/create_and_update_document.yml +0 -107
- data/spec/fixtures/vcr/app_search/create_curation.yml +0 -113
- data/spec/fixtures/vcr/app_search/create_engine.yml +0 -55
- data/spec/fixtures/vcr/app_search/create_meta_engine.yml +0 -56
- data/spec/fixtures/vcr/app_search/create_synonym_set.yml +0 -56
- data/spec/fixtures/vcr/app_search/delete_curation.yml +0 -56
- data/spec/fixtures/vcr/app_search/delete_engine.yml +0 -55
- data/spec/fixtures/vcr/app_search/delete_meta_engine_source.yml +0 -56
- data/spec/fixtures/vcr/app_search/delete_synonym_set.yml +0 -56
- data/spec/fixtures/vcr/app_search/get_curation.yml +0 -56
- data/spec/fixtures/vcr/app_search/get_engine.yml +0 -55
- data/spec/fixtures/vcr/app_search/index_and_delete_document.yml +0 -107
- data/spec/fixtures/vcr/app_search/list_curations.yml +0 -56
- data/spec/fixtures/vcr/app_search/list_documents.yml +0 -57
- data/spec/fixtures/vcr/app_search/list_engines.yml +0 -55
- data/spec/fixtures/vcr/app_search/list_synonym_sets.yml +0 -56
- data/spec/fixtures/vcr/app_search/multi_query_search.yml +0 -63
- data/spec/fixtures/vcr/app_search/put_curation.yml +0 -113
- data/spec/fixtures/vcr/app_search/put_synonym_set.yml +0 -56
- data/spec/fixtures/vcr/app_search/search.yml +0 -57
- data/spec/fixtures/vcr/app_search/single_query_search.yml +0 -60
- data/spec/fixtures/vcr/app_search/synonym_set.yml +0 -56
- data/spec/fixtures/vcr/workplace_search/add_user_permissions.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/clear_user_permissions.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/create_external_identity.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/delete_documents.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/delete_external_identity.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/index_documents.yml +0 -55
- data/spec/fixtures/vcr/workplace_search/list_external_identities.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/list_permissions.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/put_external_identity.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/put_user_permissions.yml +0 -103
- data/spec/fixtures/vcr/workplace_search/remove_user_permissions.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/retrieve_external_identity.yml +0 -53
- data/spec/fixtures/vcr/workplace_search/user_permissions_empty.yml +0 -53
- data/spec/workplace-search/documents_spec.rb +0 -80
- data/spec/workplace-search/permissions_spec.rb +0 -136
@@ -0,0 +1,21 @@
|
|
1
|
+
[[release_notes_713]]
|
2
|
+
=== 7.13.0 Release notes
|
3
|
+
|
4
|
+
[discrete]
|
5
|
+
==== General
|
6
|
+
|
7
|
+
- Tested with Elastic Enterprise Search API version 7.13.0.
|
8
|
+
- Improved meta header implementation for Elastic Cloud.
|
9
|
+
|
10
|
+
[discrete]
|
11
|
+
==== Workplace Search
|
12
|
+
|
13
|
+
* The client now supports Basic Authentication and Elasticsearch tokens. All Workplace Search APIs support Basic Authentication, Elasticsearch tokens and Workplace Search admin user access tokens as an authentication method. You still need to set up user access tokens generated by the Workplace Search OAuth Service for the Search API and the Analytics Events API.
|
14
|
+
* New APIs:
|
15
|
+
** `document`: Retrieve a document by ID from a specified content source.
|
16
|
+
** `delete_all_documents`: Delete all documents for a given content source
|
17
|
+
** `content_source`: Retrieves a content source by ID
|
18
|
+
** `create_content_source`: Creates a custom content source
|
19
|
+
** `delete_content_source`: Deletes a content source by ID
|
20
|
+
** `list_content_sources`: Retrieves all content sources
|
21
|
+
** `put_content_source`: Updates a custom content source
|
@@ -0,0 +1,21 @@
|
|
1
|
+
[[release_notes_714]]
|
2
|
+
=== 7.14.0 Release notes
|
3
|
+
|
4
|
+
[discrete]
|
5
|
+
==== General
|
6
|
+
|
7
|
+
- Tested with Elastic Enterprise Search API version 7.14.0.
|
8
|
+
|
9
|
+
[discrete]
|
10
|
+
==== App Search
|
11
|
+
|
12
|
+
- Adds API Key endpoints: `api_key`, `create_api_key`, `delete_api_key`, `list_api_keys`, `put_api_key`
|
13
|
+
|
14
|
+
[discrete]
|
15
|
+
==== Workplace Search
|
16
|
+
|
17
|
+
- Adds synonym set endpoints: `create_batch_synonym_sets`, `delete_synonym_set`, `list_synonym_sets`, `put_synonym_set`, `synonym_set`
|
18
|
+
- Adds `current_user` endpoint
|
19
|
+
- Adds `command_sync_jobs` endpoint
|
20
|
+
- Adds `delete_documents_by_query` endpoint
|
21
|
+
- Adds `put_content_source_icons` endpoint
|
@@ -0,0 +1,36 @@
|
|
1
|
+
[[release_notes_715]]
|
2
|
+
=== 7.15.0 Release notes
|
3
|
+
|
4
|
+
[discrete]
|
5
|
+
==== General
|
6
|
+
|
7
|
+
- Tested with Elastic Enterprise Search API version 7.15.0.
|
8
|
+
- Better source code documentation in general for API endpoints.
|
9
|
+
|
10
|
+
[discrete]
|
11
|
+
==== App Search
|
12
|
+
|
13
|
+
- The test suite was migrated to full integration testing https://clients-ci.elastic.co/view/Ruby/[in Jenkins]. We were using VCR for testing the API, but now we're running the API tests against an instance of Elastic Enterprise Search.
|
14
|
+
|
15
|
+
- Some APIs that used to work with `GET` query parameters in App Search are now `POST` and the parameters being sent with the body. We'll use the body from `7.15`, but we'll keep supporting arguments parameters in 7.x for backwards compatibility. Some parameters previously required through the generated code don't throw an exception anymore and the error is delegated to server. As mentioned, these should go through the body instead of part of the query parameters, but we still support sending them as query parameters in `7.x` to keep backwards compatibility.
|
16
|
+
|
17
|
+
[discrete]
|
18
|
+
===== Web Crawler API
|
19
|
+
|
20
|
+
[CAUTION]
|
21
|
+
====
|
22
|
+
The Elastic Enterprise Search web crawler API is a *beta* feature.
|
23
|
+
Beta features are subject to change and are not covered by the support SLA of general release (GA) features.
|
24
|
+
Elastic plans to promote this feature to GA in a future release.
|
25
|
+
====
|
26
|
+
|
27
|
+
New Web Crawler API endpoints:
|
28
|
+
|
29
|
+
`crawler_active_crawl_request`, `crawler_crawl_request`, `crawler_crawl_schedule`, `crawler_domain`, `crawler_domain_validation_result`, `crawler_metrics`, `crawler_overview`, `crawler_process_crawl_denied_urls`, `crawler_process_crawl`, `crawler_url_extraction_result`, `crawler_url_tracing_result`, `crawler_url_validation_result`, `crawler_user_agent`, `create_crawler_crawl_request`, `create_crawler_crawl_rule`, `create_crawler_domain`, `create_crawler_entry_point`, `create_crawler_process_crawl`, `create_crawler_sitemap`, `delete_active_crawl_request`, `delete_crawler_active_crawl_request`, `delete_crawler_crawl_rule`, `delete_crawler_crawl_schedule`, `delete_crawler_domain`, `delete_crawler_entry_point`, `delete_crawler_sitemap`, `list_crawler_crawl_requests`, `list_crawler_process_crawls`, `put_crawler_crawl_rule`, `put_crawler_crawl_schedule`, `put_crawler_domain`, `put_crawler_entry_point`, `put_crawler_sitemap`.
|
30
|
+
|
31
|
+
Refer to https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/app-search-api.html[App Search API] for more information and examples.
|
32
|
+
|
33
|
+
[discrete]
|
34
|
+
==== Workplace Search
|
35
|
+
|
36
|
+
- New APIs: `auto_query_refinement_details`, `triggers_blocklist` and `put_triggers_blocklist`. See https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/workplace-search-api.html[Workplace Search API] for more information and examples.
|
@@ -5,10 +5,16 @@
|
|
5
5
|
[discrete]
|
6
6
|
=== 7.x
|
7
7
|
|
8
|
+
* <<release_notes_715, 7.15.0 Release Notes>>
|
9
|
+
* <<release_notes_714, 7.14.0 Release Notes>>
|
10
|
+
* <<release_notes_713, 7.13.0 Release Notes>>
|
8
11
|
* <<release_notes_712, 7.12.0 Release Notes>>
|
9
12
|
* <<release_notes_711, 7.11.0 Release Notes>>
|
10
13
|
* <<release_notes_710, 7.10.0.beta.1 Release Notes>>
|
11
14
|
|
15
|
+
include::715.asciidoc[]
|
16
|
+
include::714.asciidoc[]
|
17
|
+
include::713.asciidoc[]
|
12
18
|
include::712.asciidoc[]
|
13
19
|
include::711.asciidoc[]
|
14
20
|
include::710.asciidoc[]
|
@@ -1,6 +1,47 @@
|
|
1
1
|
[[workplace-search-api]]
|
2
2
|
== Workplace Search API
|
3
3
|
|
4
|
+
=== Content Sources
|
5
|
+
|
6
|
+
[source,rb]
|
7
|
+
----------------------------
|
8
|
+
# Create a custom content source
|
9
|
+
client.create_content_source(name: 'test')
|
10
|
+
|
11
|
+
# Retrieve a content source by ID
|
12
|
+
content_source_id = client.create_content_source(name: 'books').body['id']
|
13
|
+
client.content_source(content_source_id)
|
14
|
+
|
15
|
+
# Delete a content source by ID
|
16
|
+
client.delete_content_source(content_source_id)
|
17
|
+
|
18
|
+
# Retrieve all content sources
|
19
|
+
client.list_content_sources
|
20
|
+
|
21
|
+
# Update a custom content source
|
22
|
+
body = {
|
23
|
+
name: new_name,
|
24
|
+
schema: { title: 'text', body: 'text', url: 'text' },
|
25
|
+
display: { title_field: 'title', url_field: 'url', color: '#f00f00' },
|
26
|
+
is_searchable: true
|
27
|
+
}
|
28
|
+
client.put_content_source(id, body: body)
|
29
|
+
|
30
|
+
# Issue commands to a Content Source's sync jobs
|
31
|
+
client.command_sync_jobs(content_source_id, body: { command: 'interrupt' })
|
32
|
+
|
33
|
+
# Update a content source icon
|
34
|
+
# You need to encode the file with Base64:
|
35
|
+
require 'base64'
|
36
|
+
|
37
|
+
path = File.expand_path("#{File.dirname(__FILE__)}/icon.png")
|
38
|
+
icon = Base64.strict_encode64(File.read(path))
|
39
|
+
response = client.put_content_source_icons(content_source_id, main_icon: icon, alt_icon: icon)
|
40
|
+
|
41
|
+
# Retrieves a content source's automatic query refinement details
|
42
|
+
client.auto_query_refinement_details(content_source_id)
|
43
|
+
----------------------------
|
44
|
+
|
4
45
|
=== Documents
|
5
46
|
|
6
47
|
[source,rb]
|
@@ -15,10 +56,21 @@ documents = [
|
|
15
56
|
|
16
57
|
response = client.index_documents(content_source_id, body: documents)
|
17
58
|
|
59
|
+
# Retrieve a document by ID from a specified content source
|
60
|
+
client.document(content_source_id, document_id: '75015d85370d')
|
61
|
+
|
18
62
|
# Delete Documents
|
19
|
-
|
63
|
+
client.delete_documents(content_source_id, document_ids: ['e68fbc2688f1', 'c535e226aee3'])
|
64
|
+
|
65
|
+
# Delete all documents for a given content source
|
66
|
+
client.delete_all_documents(content_source_id)
|
67
|
+
|
68
|
+
# Delete documents by query
|
69
|
+
client.delete_documents_by_query(content_source_id, query: query)
|
20
70
|
----------------------------
|
21
71
|
|
72
|
+
[discrete]
|
73
|
+
[[ws-oauth-authentication]]
|
22
74
|
=== OAuth Authentication
|
23
75
|
|
24
76
|
You need to configure the OAuth Application for Search in order to use the Workplace Search client's `search` and `create_analytics` endpoints. You need to follow the steps in https://www.elastic.co/guide/en/workplace-search/current/building-custom-search-workplace-search.html#configuring-search-oauth[Configuring the OAuth Application for Search] to retrieve the credentials: Client ID and Client Secret to request access tokens from the authentication server.
|
@@ -101,9 +153,18 @@ client.put_external_identity(content_source_id, user: 'elastic_user', body: body
|
|
101
153
|
client.delete_external_identity(content_source_id, user: 'elastic_user')
|
102
154
|
----------------------------
|
103
155
|
|
156
|
+
=== Search
|
157
|
+
|
158
|
+
You need to set up <<ws-oauth-authentication>> and use the access token for Search. See https://www.elastic.co/guide/en/workplace-search/current/workplace-search-search-api.html[Search API Reference] for available parameters and more details about search.
|
159
|
+
|
160
|
+
[source,rb]
|
161
|
+
----------------------------
|
162
|
+
client.search(body: {query: 'search query'}, access_token: access_token)
|
163
|
+
----------------------------
|
164
|
+
|
104
165
|
=== Create Analytics Event
|
105
166
|
|
106
|
-
You need to set up
|
167
|
+
You need to set up <<ws-oauth-authentication>> to use analytics events.
|
107
168
|
|
108
169
|
[source,rb]
|
109
170
|
----------------------------
|
@@ -119,3 +180,55 @@ body = {
|
|
119
180
|
|
120
181
|
client.create_analytics_event(access_token: oauth_access_token, body: body)
|
121
182
|
----------------------------
|
183
|
+
|
184
|
+
=== Synonym Sets
|
185
|
+
|
186
|
+
[source,rb]
|
187
|
+
----------------------------
|
188
|
+
body = {
|
189
|
+
synonym_sets: [
|
190
|
+
{ 'synonyms' => ['house', 'home', 'abode'] },
|
191
|
+
{ 'synonyms' => ['cat', 'feline', 'kitty'] },
|
192
|
+
{ 'synonyms' => ['mouses', 'mice'] }
|
193
|
+
]
|
194
|
+
}
|
195
|
+
|
196
|
+
# Create batch synonym set
|
197
|
+
client.create_batch_synonym_sets(body: body)
|
198
|
+
|
199
|
+
# Delete synonym set
|
200
|
+
client.delete_synonym_set(synonym_set_id: id)
|
201
|
+
|
202
|
+
# List synonym sets
|
203
|
+
client.list_synonym_sets
|
204
|
+
|
205
|
+
# Get a synonym set
|
206
|
+
client.synonym_set(synonym_set_id: id)
|
207
|
+
|
208
|
+
# Update a synonym set
|
209
|
+
body = { synonyms: ['mouses', 'mice', 'luch'] }
|
210
|
+
client.put_synonym_set(synonym_set_id: id, body: body)
|
211
|
+
----------------------------
|
212
|
+
|
213
|
+
|
214
|
+
=== Current User
|
215
|
+
|
216
|
+
[source,rb]
|
217
|
+
----------------------------
|
218
|
+
# Get the current user
|
219
|
+
client.current_user
|
220
|
+
|
221
|
+
# Get the current user and return the access token
|
222
|
+
client.current_user(get_token: true)
|
223
|
+
----------------------------
|
224
|
+
|
225
|
+
=== Triggers Blocklist
|
226
|
+
|
227
|
+
[source,rb]
|
228
|
+
----------------------------
|
229
|
+
# Get current triggers blocklist
|
230
|
+
client.triggers_blocklist
|
231
|
+
|
232
|
+
# Update current triggers blocklist
|
233
|
+
client.put_triggers_blocklist(body: { blocklist: ['in', 'it', 'page'] })
|
234
|
+
----------------------------
|
@@ -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.13.0'
|
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)
|
@@ -21,9 +21,10 @@ module Elastic
|
|
21
21
|
module EnterpriseSearch
|
22
22
|
module AppSearch
|
23
23
|
module Actions
|
24
|
-
#
|
24
|
+
# Engines - Add a source engine
|
25
|
+
# Adds a source engine to a given meta engine
|
25
26
|
#
|
26
|
-
# @param engine_name [String]
|
27
|
+
# @param engine_name [String] Name of the engine (*Required*)
|
27
28
|
# @param arguments [Hash] endpoint arguments
|
28
29
|
# @option arguments [Array] :source_engines List of engine names (*Required*)
|
29
30
|
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
4
|
+
# license agreements. See the NOTICE file distributed with
|
5
|
+
# this work for additional information regarding copyright
|
6
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
7
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
8
|
+
# not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing,
|
14
|
+
# software distributed under the License is distributed on an
|
15
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
# KIND, either express or implied. See the License for the
|
17
|
+
# specific language governing permissions and limitations
|
18
|
+
# under the License.
|
19
|
+
|
20
|
+
module Elastic
|
21
|
+
module EnterpriseSearch
|
22
|
+
module AppSearch
|
23
|
+
module Actions
|
24
|
+
# Credentials - Retrieve an API key
|
25
|
+
# Retrieves details of an API key
|
26
|
+
#
|
27
|
+
# @param arguments [Hash] endpoint arguments
|
28
|
+
# @option arguments [String] :api_key_name Name of an API key (*Required*)
|
29
|
+
# @option arguments [Hash] :body The request body
|
30
|
+
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
31
|
+
#
|
32
|
+
# @see https://www.elastic.co/guide/en/app-search/current/credentials.html#credentials-single
|
33
|
+
#
|
34
|
+
def api_key(arguments = {})
|
35
|
+
raise ArgumentError, "Required parameter 'api_key_name' missing" unless arguments[:api_key_name]
|
36
|
+
|
37
|
+
api_key_name = arguments[:api_key_name]
|
38
|
+
body = arguments.delete(:body) || {}
|
39
|
+
headers = arguments.delete(:headers) || {}
|
40
|
+
|
41
|
+
request(
|
42
|
+
:get,
|
43
|
+
"api/as/v1/credentials/#{api_key_name}/",
|
44
|
+
arguments,
|
45
|
+
body,
|
46
|
+
headers
|
47
|
+
)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -21,27 +21,28 @@ module Elastic
|
|
21
21
|
module EnterpriseSearch
|
22
22
|
module AppSearch
|
23
23
|
module Actions
|
24
|
-
#
|
24
|
+
# APILogs - Retrieve API logs
|
25
|
+
# The API Log displays API request and response data at the Engine level
|
25
26
|
#
|
26
|
-
# @param engine_name [String]
|
27
|
+
# @param engine_name [String] Name of the engine (*Required*)
|
27
28
|
# @param arguments [Hash] endpoint arguments
|
28
|
-
# @option arguments [
|
29
|
-
# @option arguments [
|
30
|
-
# @option arguments [
|
31
|
-
# @option
|
32
|
-
# @option
|
33
|
-
# @option
|
34
|
-
# @option
|
35
|
-
# @option
|
36
|
-
# @option
|
29
|
+
# @option arguments [Date] :from_date Filter date from (*Required*)
|
30
|
+
# @option arguments [Date] :to_date Filter date to (*Required*)
|
31
|
+
# @option arguments [Hash] :body
|
32
|
+
# @option body [String] :query You can search over the full_request_path of an API Log event. Use this to specify a particular endpoint, like analytics, search, curations and so on.
|
33
|
+
# @option body [String] :sort_direction Would you like to have your results ascending, oldest to newest, or descending, newest to oldest? Accepts asc or desc. Defaults to ascending.
|
34
|
+
# @option body [Integer] :page current for current page, total_pages for the net number of pages, total_results for the overall number of results, size for the amount of results per page.
|
35
|
+
# @option body :filters
|
36
|
+
# @option filters [String] :status Filter based on a particular status code: 400, 401, 403, 429, 200
|
37
|
+
# @option filters [String] :method Filter based on a particular HTTP method: GET, POST, PUT, PATCH, DELETE
|
37
38
|
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
38
39
|
#
|
39
40
|
# @see https://www.elastic.co/guide/en/app-search/current/api-logs.html
|
40
41
|
#
|
41
42
|
def api_logs(engine_name, arguments = {})
|
43
|
+
raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
|
42
44
|
raise ArgumentError, "Required parameter 'from_date' missing" unless arguments[:from_date]
|
43
45
|
raise ArgumentError, "Required parameter 'to_date' missing" unless arguments[:to_date]
|
44
|
-
raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
|
45
46
|
|
46
47
|
body = arguments.delete(:body) || {}
|
47
48
|
headers = arguments.delete(:headers) || {}
|
@@ -49,7 +50,7 @@ module Elastic
|
|
49
50
|
arguments['filters[date][to]'] = date_to_rfc3339(arguments.delete(:to_date))
|
50
51
|
|
51
52
|
request(
|
52
|
-
:
|
53
|
+
:post,
|
53
54
|
"api/as/v1/engines/#{engine_name}/logs/api/",
|
54
55
|
arguments,
|
55
56
|
body,
|
@@ -21,13 +21,14 @@ module Elastic
|
|
21
21
|
module EnterpriseSearch
|
22
22
|
module AppSearch
|
23
23
|
module Actions
|
24
|
-
# Analytics -
|
24
|
+
# Analytics - Query for analytics counts data
|
25
|
+
# Returns the number of clicks and total number of queries over a period
|
25
26
|
#
|
26
|
-
# @param engine_name [String]
|
27
|
+
# @param engine_name [String] Name of the engine (*Required*)
|
27
28
|
# @param arguments [Hash] endpoint arguments
|
28
|
-
# @option arguments [
|
29
|
-
# @option
|
30
|
-
# @option
|
29
|
+
# @option arguments [Hash] :body
|
30
|
+
# @option body :filters Analytics filters
|
31
|
+
# @option body [String] :interval You can define an interval along with your date range. Can be either hour or day
|
31
32
|
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
32
33
|
#
|
33
34
|
# @see https://www.elastic.co/guide/en/app-search/current/counts.html
|
@@ -39,7 +40,7 @@ module Elastic
|
|
39
40
|
headers = arguments.delete(:headers) || {}
|
40
41
|
|
41
42
|
request(
|
42
|
-
:
|
43
|
+
:post,
|
43
44
|
"api/as/v1/engines/#{engine_name}/analytics/counts/",
|
44
45
|
arguments,
|
45
46
|
body,
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
4
|
+
# license agreements. See the NOTICE file distributed with
|
5
|
+
# this work for additional information regarding copyright
|
6
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
7
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
8
|
+
# not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing,
|
14
|
+
# software distributed under the License is distributed on an
|
15
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
# KIND, either express or implied. See the License for the
|
17
|
+
# specific language governing permissions and limitations
|
18
|
+
# under the License.
|
19
|
+
|
20
|
+
module Elastic
|
21
|
+
module EnterpriseSearch
|
22
|
+
module AppSearch
|
23
|
+
module Actions
|
24
|
+
# Crawler - Get active crawl request details
|
25
|
+
# Returns active crawl request details.
|
26
|
+
#
|
27
|
+
# @param engine_name [String] Name of the engine (*Required*)
|
28
|
+
# @param arguments [Hash] endpoint arguments
|
29
|
+
# @option arguments [Hash] :body The request body
|
30
|
+
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
31
|
+
#
|
32
|
+
# @see https://www.elastic.co/guide/en/app-search/current/web-crawler-api-reference.html#web-crawler-apis-get-crawler-crawl-requests-active
|
33
|
+
#
|
34
|
+
def crawler_active_crawl_request(engine_name, arguments = {})
|
35
|
+
raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
|
36
|
+
|
37
|
+
body = arguments.delete(:body) || {}
|
38
|
+
headers = arguments.delete(:headers) || {}
|
39
|
+
|
40
|
+
request(
|
41
|
+
:get,
|
42
|
+
"api/as/v0/engines/#{engine_name}/crawler/crawl_requests/active/",
|
43
|
+
arguments,
|
44
|
+
body,
|
45
|
+
headers
|
46
|
+
)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
4
|
+
# license agreements. See the NOTICE file distributed with
|
5
|
+
# this work for additional information regarding copyright
|
6
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
7
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
8
|
+
# not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing,
|
14
|
+
# software distributed under the License is distributed on an
|
15
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
# KIND, either express or implied. See the License for the
|
17
|
+
# specific language governing permissions and limitations
|
18
|
+
# under the License.
|
19
|
+
|
20
|
+
module Elastic
|
21
|
+
module EnterpriseSearch
|
22
|
+
module AppSearch
|
23
|
+
module Actions
|
24
|
+
# Crawler - Get crawl request details
|
25
|
+
# Returns crawl request details.
|
26
|
+
#
|
27
|
+
# @param engine_name [String] Name of the engine (*Required*)
|
28
|
+
# @param arguments [Hash] endpoint arguments
|
29
|
+
# @option arguments [String] :crawl_request_id Crawl Request ID (*Required*)
|
30
|
+
# @option arguments [Hash] :body The request body
|
31
|
+
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
32
|
+
#
|
33
|
+
# @see https://www.elastic.co/guide/en/app-search/current/web-crawler-api-reference.html#web-crawler-apis-get-crawler-crawl-requests-id
|
34
|
+
#
|
35
|
+
def crawler_crawl_request(engine_name, arguments = {})
|
36
|
+
raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
|
37
|
+
raise ArgumentError, "Required parameter 'crawl_request_id' missing" unless arguments[:crawl_request_id]
|
38
|
+
|
39
|
+
crawl_request_id = arguments[:crawl_request_id]
|
40
|
+
body = arguments.delete(:body) || {}
|
41
|
+
headers = arguments.delete(:headers) || {}
|
42
|
+
|
43
|
+
request(
|
44
|
+
:get,
|
45
|
+
"api/as/v0/engines/#{engine_name}/crawler/crawl_requests/#{crawl_request_id}/",
|
46
|
+
arguments,
|
47
|
+
body,
|
48
|
+
headers
|
49
|
+
)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
4
|
+
# license agreements. See the NOTICE file distributed with
|
5
|
+
# this work for additional information regarding copyright
|
6
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
7
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
8
|
+
# not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing,
|
14
|
+
# software distributed under the License is distributed on an
|
15
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
# KIND, either express or implied. See the License for the
|
17
|
+
# specific language governing permissions and limitations
|
18
|
+
# under the License.
|
19
|
+
|
20
|
+
module Elastic
|
21
|
+
module EnterpriseSearch
|
22
|
+
module AppSearch
|
23
|
+
module Actions
|
24
|
+
# Crawler - Get crawl schedule
|
25
|
+
# Returns the current crawl schedule for a given engine
|
26
|
+
#
|
27
|
+
# @param engine_name [String] Name of the engine (*Required*)
|
28
|
+
# @param arguments [Hash] endpoint arguments
|
29
|
+
# @option arguments [Hash] :body The request body
|
30
|
+
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
31
|
+
#
|
32
|
+
# @see https://www.elastic.co/guide/en/app-search/current/web-crawler-api-reference.html#web-crawler-apis-get-crawler-crawl-schedule
|
33
|
+
#
|
34
|
+
def crawler_crawl_schedule(engine_name, arguments = {})
|
35
|
+
raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
|
36
|
+
|
37
|
+
body = arguments.delete(:body) || {}
|
38
|
+
headers = arguments.delete(:headers) || {}
|
39
|
+
|
40
|
+
request(
|
41
|
+
:get,
|
42
|
+
"api/as/v0/engines/#{engine_name}/crawler/crawl_schedule/",
|
43
|
+
arguments,
|
44
|
+
body,
|
45
|
+
headers
|
46
|
+
)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
4
|
+
# license agreements. See the NOTICE file distributed with
|
5
|
+
# this work for additional information regarding copyright
|
6
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
7
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
8
|
+
# not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing,
|
14
|
+
# software distributed under the License is distributed on an
|
15
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
# KIND, either express or implied. See the License for the
|
17
|
+
# specific language governing permissions and limitations
|
18
|
+
# under the License.
|
19
|
+
|
20
|
+
module Elastic
|
21
|
+
module EnterpriseSearch
|
22
|
+
module AppSearch
|
23
|
+
module Actions
|
24
|
+
# Crawler - Get domain configuration
|
25
|
+
# Returns crawler domain configuration details
|
26
|
+
#
|
27
|
+
# @param engine_name [String] Name of the engine (*Required*)
|
28
|
+
# @param arguments [Hash] endpoint arguments
|
29
|
+
# @option arguments [String] :domain_id Crawler Domain ID (*Required*)
|
30
|
+
# @option arguments [Hash] :body The request body
|
31
|
+
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
32
|
+
#
|
33
|
+
# @see https://www.elastic.co/guide/en/app-search/current/web-crawler-api-reference.html#web-crawler-apis-get-crawler-domain
|
34
|
+
#
|
35
|
+
def crawler_domain(engine_name, arguments = {})
|
36
|
+
raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
|
37
|
+
raise ArgumentError, "Required parameter 'domain_id' missing" unless arguments[:domain_id]
|
38
|
+
|
39
|
+
domain_id = arguments[:domain_id]
|
40
|
+
body = arguments.delete(:body) || {}
|
41
|
+
headers = arguments.delete(:headers) || {}
|
42
|
+
|
43
|
+
request(
|
44
|
+
:get,
|
45
|
+
"api/as/v0/engines/#{engine_name}/crawler/domains/#{domain_id}/",
|
46
|
+
arguments,
|
47
|
+
body,
|
48
|
+
headers
|
49
|
+
)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
4
|
+
# license agreements. See the NOTICE file distributed with
|
5
|
+
# this work for additional information regarding copyright
|
6
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
7
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
8
|
+
# not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing,
|
14
|
+
# software distributed under the License is distributed on an
|
15
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
+
# KIND, either express or implied. See the License for the
|
17
|
+
# specific language governing permissions and limitations
|
18
|
+
# under the License.
|
19
|
+
|
20
|
+
module Elastic
|
21
|
+
module EnterpriseSearch
|
22
|
+
module AppSearch
|
23
|
+
module Actions
|
24
|
+
# Crawler - Validate Domain with Crawler
|
25
|
+
# Performs a number of checks on a given domain name to make sure it is ready to be crawled and ingested into App Search.
|
26
|
+
#
|
27
|
+
# @param arguments [Hash] endpoint arguments
|
28
|
+
# @option arguments [String] :body
|
29
|
+
# @option arguments [Hash] :headers optional HTTP headers to send with the request
|
30
|
+
#
|
31
|
+
# @see https://www.elastic.co/guide/en/app-search/current/web-crawler-api-reference.html
|
32
|
+
#
|
33
|
+
def crawler_domain_validation_result(arguments = {})
|
34
|
+
body = arguments.delete(:body) || {}
|
35
|
+
headers = arguments.delete(:headers) || {}
|
36
|
+
|
37
|
+
request(
|
38
|
+
:post,
|
39
|
+
'api/as/v0/crawler/validate_url/',
|
40
|
+
arguments,
|
41
|
+
body,
|
42
|
+
headers
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|