-
Notifications
You must be signed in to change notification settings - Fork 25.2k
REST high-level client: add force merge API #28896
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
javanna
merged 7 commits into
elastic:master
from
PnPie:rest_hightlevel_client_force_merge
Mar 22, 2018
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
51075a4
REST high-level client: add force merge API
PnPie 1e3f98d
format...
PnPie cd9f381
a line > 140
PnPie 419253c
Modify for request on All indices & add tests
PnPie fc5711d
Merge branch 'master' into rest_hightlevel_client_force_merge
javanna 74b3be7
fix bad merge
javanna 5c9f43b
Merge branch 'master' into rest_hightlevel_client_force_merge
javanna File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
[[java-rest-high-force-merge]] | ||
=== Force Merge API | ||
|
||
[[java-rest-high-force-merge-request]] | ||
==== Force merge Request | ||
|
||
A `ForceMergeRequest` can be applied to one or more indices, or even on `_all` the indices: | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-request] | ||
-------------------------------------------------- | ||
<1> Force merge one index | ||
<2> Force merge multiple indices | ||
<3> Force merge all the indices | ||
|
||
==== Optional arguments | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-request-indicesOptions] | ||
-------------------------------------------------- | ||
<1> Setting `IndicesOptions` controls how unavailable indices are resolved and | ||
how wildcard expressions are expanded | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-request-segments-num] | ||
-------------------------------------------------- | ||
<1> Set `max_num_segments` to control the number of segments to merge down to. | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-request-only-expunge-deletes] | ||
-------------------------------------------------- | ||
<1> Set the `only_expunge_deletes` flag to `true` | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-request-flush] | ||
-------------------------------------------------- | ||
<1> Set the `flush` flag to `true` | ||
|
||
[[java-rest-high-force-merge-sync]] | ||
==== Synchronous Execution | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-execute] | ||
-------------------------------------------------- | ||
|
||
[[java-rest-high-force-merge-async]] | ||
==== Asynchronous Execution | ||
|
||
The asynchronous execution of a force merge request requires both the `ForceMergeRequest` | ||
instance and an `ActionListener` instance to be passed to the asynchronous | ||
method: | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-execute-async] | ||
-------------------------------------------------- | ||
<1> The `ForceMergeRequest` to execute and the `ActionListener` to use when | ||
the execution completes | ||
|
||
The asynchronous method does not block and returns immediately. Once it is | ||
completed the `ActionListener` is called back using the `onResponse` method | ||
if the execution successfully completed or using the `onFailure` method if | ||
it failed. | ||
|
||
A typical listener for `ForceMergeResponse` looks like: | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-execute-listener] | ||
-------------------------------------------------- | ||
<1> Called when the execution is successfully completed. The response is | ||
provided as an argument | ||
<2> Called in case of failure. The raised exception is provided as an argument | ||
|
||
[[java-rest-high-force-merge-response]] | ||
==== Force Merge Response | ||
|
||
The returned `ForceMergeResponse` allows to retrieve information about the | ||
executed operation as follows: | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-response] | ||
-------------------------------------------------- | ||
<1> Total number of shards hit by the force merge request | ||
<2> Number of shards where the force merge has succeeded | ||
<3> Number of shards where the force merge has failed | ||
<4> A list of failures if the operation failed on one or more shards | ||
|
||
By default, if the indices were not found, an `ElasticsearchException` will be thrown: | ||
|
||
["source","java",subs="attributes,callouts,macros"] | ||
-------------------------------------------------- | ||
include-tagged::{doc-tests}/IndicesClientDocumentationIT.java[force-merge-notfound] | ||
-------------------------------------------------- | ||
<1> Do something if the indices to be force merged were not found |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you add a test for the case when indices are not set or set to null? I found also in the clear cache PR that things break :) (also with refresh and flush)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @javanna, when indices are not set or set to
null
, we need to do operations on all the indices ? or throw an exception ? According to our docs it should be the former ? But I see currently if we didn't set indices (null), we will get an exception when we build the endpoint here, shall we need to modify it ?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should use the endpoint that requires no indices (e.g.
/_forcemerge
), the server will expand that to all indices.