You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: DEVELOPER_GUIDE.md
+36-2Lines changed: 36 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@
14
14
The `.md` documents in this repository are rendered into HTML pages using [Jekyll](https://jekyllrb.com/). These HTML pages are hosted on [opensearch.org](https://opensearch.org/docs/latest/).
15
15
16
16
## Starting the Jekyll server locally
17
+
17
18
You can run the Jekyll server locally to view the rendered HTML pages using the following steps:
18
19
19
20
1. Install [Ruby](https://www.ruby-lang.org/en/documentation/installation/) 3.1.0 or later for your operating system.
@@ -22,6 +23,7 @@ You can run the Jekyll server locally to view the rendered HTML pages using the
22
23
4. Open your browser and navigate to `http://localhost:4000` to view the rendered HTML pages.
23
24
24
25
## Using the `spec-insert` Jekyll plugin
26
+
25
27
The `spec-insert` Jekyll plugin is used to insert API components into Markdown files. The plugin downloads the [latest OpenSearch specification](https://github.com/opensearch-project/opensearch-api-specification) and renders the API components from the spec. This aims to reduce the manual effort required to keep the documentation up to date.
26
28
27
29
To use this plugin, make sure that you have installed Ruby 3.1.0 or later and the required gems by running `bundle install`.
@@ -52,7 +54,7 @@ If you are working on multiple Markdown files and do not want to keep running th
52
54
bundle exec jekyll spec-insert -W
53
55
```
54
56
55
-
By default, when the plugin encounters an error when processing a file, the plugin prints out the error than moves on to the next file. If you want it to short-circuit when an error occurs, add the `--fail-on-error` (or `-F`) flag to the command:
57
+
By default, when the plugin encounters an error when processing a file, the plugin prints out the error then moves on to the next file. If you want it to short-circuit when an error occurs, add the `--fail-on-error` (or `-F`) flag to the command:
The `spec-insert` plugin ignores all files and folders listed in the [./_config.yml#exclude](./_config.yml) list, which is also the list of files and folders that Jekyll ignores.
71
74
72
75
### Configuration
76
+
73
77
You can update the configuration settings for this plugin through the [config.yml](./spec-insert/config.yml) file.
74
78
75
-
_Note that tests for this plugin use a mock configuration [file](./spec-insert/spec/mock_config.yml) to assure that the tests still pass when the config file is altered. The expected output for the tests is based on the mock configuration file and will look different from the actual output when the plugin is run._
79
+
**Note:** The tests for this plugin use a mock configuration [file](./spec-insert/spec/mock_config.yml) to assure that the tests still pass when the config file is altered. The expected output for the tests is based on the mock configuration file and will look different from the actual output when the plugin is run.
76
80
77
81
## CI/CD
78
82
The `spec-insert` plugin is run as part of the CI/CD pipeline to ensure that the API components are up to date in the documentation. This is performed through the [update-api-components.yml](.github/workflows/update-api-components.yml) GitHub Actions workflow, which creates a pull request containing the updated API components every Sunday.
79
83
80
84
## Spec insert components
81
85
All spec insert components accept the following arguments:
86
+
82
87
-`api` (String; required): The name of the API to render the component from. This is equivalent to the `x-operation-group` field in the OpenSearch OpenAPI Spec.
83
88
-`component` (String; required): The name of the component to render, such as `query_parameters`, `path_parameters`, or `endpoints`.
84
89
-`omit_header` (Boolean; Default is `false`): If set to `true`, the markdown header of the component will not be rendered.
85
90
86
91
### Endpoints
87
92
To insert endpoints for the `search` API, use the following snippet:
93
+
88
94
```markdown
89
95
<!-- spec_insert_start
90
96
api: search
@@ -104,10 +110,13 @@ component: path_parameters
104
110
-->
105
111
<!-- spec_insert_end -->
106
112
```
113
+
107
114
This table accepts the same arguments as the query parameters table except the `include_global` argument.
108
115
109
116
### Query parameters
117
+
110
118
To insert the API query parameters table of the `cat.indices` API, use the following snippet:
119
+
111
120
```markdown
112
121
<!-- spec_insert_start
113
122
api: cat.indices
@@ -144,3 +153,28 @@ pretty: true
144
153
-->
145
154
<!-- spec_insert_end -->
146
155
```
156
+
157
+
### Request and response bodies (Beta)
158
+
159
+
To insert the request and response body tables of the `indices.create` API, use the following snippet:
160
+
161
+
```markdown
162
+
<!-- spec_insert_start
163
+
api: indices.create
164
+
component: request_body_parameters // or response_body_parameters
165
+
-->
166
+
<!-- spec_insert_end -->
167
+
```
168
+
169
+
**Note:**: These components are still a work in progress and may not render correctly for all APIs.
170
+
171
+
## Spec insert coverage report
172
+
To generate a coverage report of the API components that are being used in the documentation, run the following command:
173
+
174
+
```shell
175
+
cd spec-insert
176
+
bundle exec rake generate_utilization_coverage
177
+
```
178
+
179
+
The coverage report will be generated in the `spec-insert/utilization_coverage.md` by default.
Copy file name to clipboardExpand all lines: FORMATTING_GUIDE.md
+43Lines changed: 43 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@ This guide provides an overview of the formatted elements commonly used in the O
9
9
*[Adding pages or sections](#adding-pages-or-sections)
10
10
*[Buttons](#buttons)
11
11
*[Callouts](#callouts)
12
+
*[Cards](#cards)
12
13
*[Collapsible blocks](#collapsible-blocks)
13
14
*[Dashes](#dashes)
14
15
*[Horizontal rule](#horizontal-rule)
@@ -22,6 +23,7 @@ This guide provides an overview of the formatted elements commonly used in the O
22
23
*[Nested lists](#nested-lists)
23
24
*[Lists with code snippets or images](#lists-with-code-snippets-or-images)
24
25
*[Math](#math)
26
+
*[Steps](#steps)
25
27
*[Tables](#tables)
26
28
*[Text style](#text-style)
27
29
*[Variables in curly braces](#variables-in-curly-braces)
@@ -109,6 +111,27 @@ For a callout with multiple paragraphs or lists, use `>`:
109
111
110
112
```
111
113
114
+
## Cards
115
+
116
+
To add a card to a page, specify it in the front matter as follows. The `description`, `link`, and `list` are optional. Use relative links. You can optionally style the text using HTML tags:
117
+
118
+
```yaml
119
+
tutorial_cards:
120
+
- heading: "Getting started with semantic and hybrid search"
121
+
description: "Learn how to implement semantic and hybrid search"
Insert an include in the page body where you want the cards to appear:
130
+
131
+
```
132
+
{% include cards.html cards=page.tutorial_cards %}
133
+
```
134
+
112
135
## Collapsible blocks
113
136
114
137
To insert an open collapsible block, use the `<details>` element as follows:
@@ -405,6 +428,26 @@ Alternatively, you can use double dollar signs (`$$`) for both display and inlin
405
428
The probability of selecting pair $$i$$ is proportional to $$1 \over i^\alpha$$.
406
429
```
407
430
431
+
## Steps
432
+
433
+
To insert steps, specify them in the front matter as follows. Steps are automatically numbered. Use relative links. The `description` and `link` are optional:
434
+
435
+
```yaml
436
+
steps:
437
+
- heading: "Create an OpenSearch index"
438
+
description: "Create an OpenSearch index to store your embeddings."
Copy file name to clipboardExpand all lines: _about/breaking-changes.md
+118-1Lines changed: 118 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,4 +41,121 @@ A Lucene upgrade forced OpenSearch to drop support for JDK 8. As a consequence,
41
41
42
42
### Wildcard query behavior for text fields
43
43
44
-
OpenSearch 2.5 contains a bug fix to correct the behavior of the `case_insensitive` parameter for the `wildcard` query on text fields. As a result, a wildcard query on text fields that ignored case sensitivity and erroneously returned results prior to the bug fix will not return the same results. For more information, see issue [#8711](https://github.com/opensearch-project/OpenSearch/issues/8711).
44
+
OpenSearch 2.5 contains a bug fix that corrects the behavior of the `case_insensitive` parameter for the `wildcard` query on text fields. As a result, a wildcard query on text fields that ignored case sensitivity and erroneously returned results prior to the bug fix will not return the same results. For more information, see issue [#8711](https://github.com/opensearch-project/OpenSearch/issues/8711).
45
+
46
+
## 3.0.0
47
+
48
+
### JDK requirement
49
+
50
+
The minimum supported JDK version is JDK 21.
51
+
52
+
### System index access
53
+
54
+
Access to system indexes through the REST API is no longer provided. This functionality has been deprecated since OpenSearch 1.x. For more information, see issue [#7936](https://github.com/opensearch-project/OpenSearch/issues/7936).
55
+
56
+
### Document ID length limits
57
+
58
+
The document ID length limit of 512 bytes is now consistently enforced across all APIs, including the Bulk API. Previously, the Bulk API allowed document IDs longer than 512 bytes. For more information, see issue [#6595](https://github.com/opensearch-project/OpenSearch/issues/6595).
59
+
60
+
### Node role configuration
61
+
62
+
The configuration of empty node roles using environment variables has been fixed. Setting `node.roles=` using environment variables now properly configures a coordinating-only node, consistent with the `opensearch.yml` configuration. For more information, see issue [#3412](https://github.com/opensearch-project/OpenSearch/issues/3412).
63
+
64
+
### JSON processing limits
65
+
66
+
New default limits have been introduced for JSON processing (using the Jackson library) throughout OpenSearch:
67
+
68
+
- The maximum nesting depth of JSON objects and arrays is limited to 1,000 levels.
69
+
- The maximum length of JSON property names is limited to 50,000 units (bytes or chars, depending on the input source).
70
+
71
+
These limits help prevent potential memory issues and denial-of-service attacks. For more information, see issue [#11278](https://github.com/opensearch-project/OpenSearch/issues/11278).
72
+
73
+
### Nested query depth
74
+
75
+
A new `index.query.max_nested_depth` setting has been introduced with a default value of `20` and a minimum value of `1`, limiting the maximum number of nesting levels for `nested` queries. For more information, see issue [#3268](https://github.com/opensearch-project/OpenSearch/issues/3268).
76
+
77
+
### Thread pool settings
78
+
79
+
The following deprecated thread pool settings have been removed:
80
+
-`thread_pool.test.max_queue_size`
81
+
-`thread_pool.test.min_queue_size`
82
+
For more information, see issue [#2595](https://github.com/opensearch-project/OpenSearch/issues/2595).
83
+
84
+
### Index store settings
85
+
86
+
The `index.store.hybrid.mmap.extensions` setting has been removed as part of improvements to `hybridfs` file handling. For more information, see pull request [#9392](https://github.com/opensearch-project/OpenSearch/pull/9392).
87
+
88
+
### Transport Nio plugin
89
+
90
+
The `transport-nio` plugin has been removed. Netty remains the standard network framework for both node-to-node and client-to-server communication. For more information, see issue [#16887](https://github.com/opensearch-project/OpenSearch/issues/16887).
91
+
92
+
### Nodes API response format
93
+
94
+
The format of indexing buffer values in the Nodes API response has changed:
95
+
96
+
-`total_indexing_buffer_in_bytes` now displays raw bytes (for example, `53687091`).
97
+
-`total_indexing_buffer` now displays human-readable format (for example, `51.1mb`).
98
+
99
+
For more information, see pull request [#17070](https://github.com/opensearch-project/OpenSearch/pull/17070).
100
+
101
+
### PathHierarchy tokenizer
102
+
103
+
The camel case `PathHierarchy` tokenizer name has been deprecated in favor of the snake case `path_hierarchy`. For more information, see pull request [#10894](https://github.com/opensearch-project/OpenSearch/pull/10894).
104
+
105
+
### Security plugin
106
+
107
+
The Blake2b hash implementation now uses the salt parameter correctly, which will result in different (though correct) hash values compared to previous versions. For more information, see pull request [#5089](https://github.com/opensearch-project/security/pull/5089).
108
+
109
+
### k-NN plugin
110
+
111
+
The following deprecated settings have been removed from the k-NN plugin:
112
+
113
+
-`knn.plugin.enabled` setting
114
+
-`index.knn.algo_param.ef_construction` index setting
115
+
-`index.knn.algo_param.m` index setting
116
+
-`index.knn.space_type` index setting
117
+
118
+
The NMSLIB engine is now deprecated. We recommend using the Faiss or Lucene engines instead.
119
+
120
+
For more information, see pull request [#2564](https://github.com/opensearch-project/k-NN/pull/2564).
121
+
122
+
### Performance Analyzer plugin
123
+
124
+
The `performance-analyzer-rca` agent has been removed. We recommend transitioning to the [Telemetry plugin](https://github.com/opensearch-project/performance-analyzer/issues/585) for performance monitoring and analysis. The Telemetry plugin, using the OpenTelemetry framework, allows for seamless integration with lightweight open-source agents in order to publish performance metrics to observability stores. For more information, see issue [#591](https://github.com/opensearch-project/performance-analyzer-rca/issues/591).
125
+
126
+
### SQL plugin
127
+
128
+
- The OpenSearch query domain-specific language (DSL) response format has been removed.
129
+
-`DELETE` statement support has been removed.
130
+
- The `plugins.sql.delete.enabled` setting has been removed.
131
+
- The legacy Spark Connector module has been deprecated. For information about connecting to Spark, see [`async-query-core`](https://github.com/opensearch-project/sql/blob/main/async-query-core/README.md).
132
+
- Deprecated OpenDistro endpoints and legacy settings with the `opendistro` prefix have been removed.
133
+
- The `plugins.sql.pagination.api` has been removed and the Scroll API has been deprecated. Pagination now defaults to Point in Time.
134
+
135
+
For more information, see issue [#3248](https://github.com/opensearch-project/sql/issues/3248).
136
+
137
+
### OpenSearch Dashboards
138
+
139
+
- Discover experience:
140
+
141
+
- The `discover:newExperience` setting has been removed.
142
+
- The DataGrid table feature has been removed.
143
+
144
+
For more information, see pull request [#9511](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/9511).
145
+
146
+
- Visualizations: The `dashboards-visualizations` plugin (including Gantt chart visualization) has been removed. We recommend transitioning to:
147
+
148
+
- Vega visualization for flexible visualization needs.
149
+
- Trace analytics for trace-related use cases.
150
+
151
+
For more information, see issue [#430](https://github.com/opensearch-project/dashboards-visualizations/issues/430).
152
+
153
+
### Dashboards Observability plugin
154
+
155
+
The legacy notebooks feature has been removed from `dashboards-observability`. Key changes include the following:
156
+
157
+
- Legacy notebooks (previously stored in the `.opensearch-observability` index) are no longer supported.
158
+
- Only notebooks stored in the `.kibana` index (introduced in version 2.17) are supported.
159
+
- You must migrate your notebooks to the new storage system before upgrading to version 3.0.
160
+
161
+
For more information, see issue [#2350](https://github.com/opensearch-project/dashboards-observability/issues/2350).
0 commit comments