simulate-index.asciidoc 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. [[indices-simulate-index]]
  2. === Simulate index API
  3. ++++
  4. <titleabbrev>Simulate index</titleabbrev>
  5. ++++
  6. experimental[]
  7. Returns the index configuration that would be applied to the specified index from an
  8. existing <<index-templates, index template>>.
  9. ////
  10. [source,console]
  11. --------------------------------------------------
  12. PUT _index_template/template_1
  13. {
  14. "index_patterns": ["my-index-*"],
  15. "template": {
  16. "settings": {
  17. "number_of_shards": 1
  18. }
  19. }
  20. }
  21. --------------------------------------------------
  22. // TESTSETUP
  23. [source,console]
  24. --------------------------------------------------
  25. DELETE _index_template/*
  26. --------------------------------------------------
  27. // TEARDOWN
  28. ////
  29. [source,console]
  30. --------------------------------------------------
  31. POST /_index_template/_simulate_index/my-index-000001
  32. --------------------------------------------------
  33. [[simulate-index-api-request]]
  34. ==== {api-request-title}
  35. `POST /_index_template/_simulate_index/<index>`
  36. [[simulate-index-api-prereqs]]
  37. ==== {api-prereq-title}
  38. * If the {es} {security-features} are enabled, you must have the
  39. `manage_index_templates` or `manage` <<privileges-list-cluster,cluster
  40. privilege>> to use this API.
  41. [[simulate-index-api-path-params]]
  42. ==== {api-path-parms-title}
  43. `<index>`::
  44. (Required, string)
  45. Name of the index to simulate.
  46. [[simulate-index-api-query-params]]
  47. ==== {api-query-parms-title}
  48. ////
  49. `cause`::
  50. (Optional, string) The reason for running the simulation.
  51. ////
  52. include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=master-timeout]
  53. [role="child_attributes"]
  54. [[simulate-index-api-response-body]]
  55. ==== {api-response-body-title}
  56. `overlapping`::
  57. (array) Any templates that also matched the index but were superseded by a higher-priority template.
  58. Response includes an empty array if there are no overlapping templates.
  59. +
  60. .Properties of `overlapping`
  61. [%collapsible%open]
  62. ====
  63. `name`::
  64. (string) Name of the superseded template.
  65. `index_patterns`::
  66. (array) Index patterns that the superseded template applies to.
  67. ====
  68. `template`::
  69. (object)
  70. The settings, mappings, and aliases that would be applied to the index.
  71. +
  72. .Properties of `template`
  73. [%collapsible%open]
  74. ====
  75. include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=aliases]
  76. +
  77. Response includes an empty object if no aliases would be applied.
  78. include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=mappings]
  79. +
  80. Omitted from the response if no mappings would be applied.
  81. include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=settings]
  82. +
  83. Response includes an empty object if no settings would be applied.
  84. ====
  85. [[simulate-index-api-example]]
  86. ==== {api-examples-title}
  87. The following example shows the configuration that would be applied to `my-index-000001` by
  88. an existing template.
  89. [source,console]
  90. --------------------------------------------------
  91. PUT /_component_template/ct1 <1>
  92. {
  93. "template": {
  94. "settings": {
  95. "index.number_of_shards": 2
  96. }
  97. }
  98. }
  99. PUT /_component_template/ct2 <2>
  100. {
  101. "template": {
  102. "settings": {
  103. "index.number_of_replicas": 0
  104. },
  105. "mappings": {
  106. "properties": {
  107. "@timestamp": {
  108. "type": "date"
  109. }
  110. }
  111. }
  112. }
  113. }
  114. PUT /_index_template/final-template <3>
  115. {
  116. "index_patterns": ["my-index-*"],
  117. "composed_of": ["ct1", "ct2"],
  118. "priority": 5
  119. }
  120. POST /_index_template/_simulate_index/my-index-000001 <4>
  121. --------------------------------------------------
  122. <1> Create a component template (`ct1`) that sets the number of shards to 2
  123. <2> Create a second component template (`ct2`) that sets the number of replicas to 0 and defines a mapping
  124. <3> Create an index template (`final-template`) that uses the component templates
  125. <4> Show the configuration that would be applied to `my-index-000001`
  126. The response shows the index settings, mappings, and aliases applied by the `final-template`:
  127. [source,console-result]
  128. ---------------------------------------------------------
  129. {
  130. "template" : {
  131. "settings" : {
  132. "index" : {
  133. "number_of_shards" : "2",
  134. "number_of_replicas" : "0"
  135. }
  136. },
  137. "mappings" : {
  138. "properties" : {
  139. "@timestamp" : {
  140. "type" : "date"
  141. }
  142. }
  143. },
  144. "aliases" : { }
  145. },
  146. "overlapping" : [
  147. {
  148. "name" : "template_1",
  149. "index_patterns" : [
  150. "my-index-*"
  151. ]
  152. }
  153. ]
  154. }
  155. ---------------------------------------------------------