Compare commits

...

73 Commits

Author SHA1 Message Date
869174f953 Bump version to 9.0.0-alpha.2 (#2574) 2025-01-28 12:28:42 -06:00
5eb3554083 Auto-generated API code (#2577)
Co-authored-by: Josh Mock <joshua.mock@elastic.co>
2025-01-28 12:26:27 -06:00
26ce906b5b Update actions/stale digest to 5bef64f (#2586)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2025-01-28 11:32:20 -06:00
5f9561d566 Update dependency @types/node to v22.10.7 (#2576)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2025-01-21 12:39:09 -06:00
3676c8229a Fix Renovate rules for Dockerfile (#2572) 2025-01-13 10:15:27 -06:00
2bcbd36d75 Update dependency typescript to v5.7.3 (#2565)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2025-01-13 10:09:10 -06:00
63104b5e5e Auto-generated code for main (#2566) 2025-01-13 09:44:45 -06:00
2b2a9947c7 Update dependency @types/node to v22.10.5 (#2547)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2025-01-08 13:21:31 -06:00
b95aa986b7 Auto-generated code for main (#2551) 2025-01-07 11:48:46 -06:00
0ee486bc9c Drop @types/tap for built-in types (#2561) 2025-01-07 11:06:18 -06:00
f835fa3b12 Update @sinonjs/fake-timers digest to 48f089f (#2527)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2025-01-06 12:50:24 -06:00
e688f36396 Update dependency @elastic/request-converter to v8.17.0 (#2555)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2025-01-06 12:39:44 -06:00
b8c3ac446e Update peter-evans/create-pull-request digest to 67ccf78 (#2556)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2025-01-06 12:34:18 -06:00
3a288cf86b Update buildkite plugin junit-annotate to v2.6.0 (#2554)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2025-01-06 12:31:13 -06:00
100be27ad1 Update changelog for 8.17.0 (#2545) 2024-12-12 11:48:57 -06:00
c490dd0821 Update changelog for 8.16.3 (#2541) 2024-12-12 09:35:45 -06:00
e992c329c3 Parse branch name during code gen including 'x' (#2534) 2024-12-10 10:32:18 -06:00
bfdae66333 Auto-generated code for main (#2530) 2024-12-10 10:03:40 -06:00
ed3cace127 Checkout correct branch of generator (#2531) 2024-12-10 09:58:14 -06:00
f33aa8cccd Publish 9.0 tags as prereleases (#2524) 2024-12-05 14:30:28 -06:00
7cb973a206 Update changelog for 9.0.0 body param removal (#2523) 2024-12-05 14:12:59 -06:00
a4315a905e Auto-generated code for main (#2522) 2024-12-05 13:28:38 -06:00
6447fc10bf Drop support for body param in helpers and tests (#2521)
* Update tests and bulk helper to stop using body param

* Update compatible-with content-type header for 9.0
2024-12-05 13:03:19 -06:00
e9c2f8b0af Bump version to 9.0.0-alpha.1 (#2516)
* Bump version to 9.0.0-alpha.1

* Update npm publish workflow for 9.0.0 alpha
2024-12-05 10:40:34 -06:00
15b9ee2f06 Codegen for 8.x clients should use the 8.x generator branch (#2515) 2024-12-05 10:37:46 -06:00
e30e964131 Update stale rules to keep tracking issues open (#2514) 2024-12-03 11:18:16 -06:00
0f187f47c4 Disable Dockerfile Node.js upgrades by Renovate (#2509) 2024-12-02 12:17:45 -06:00
101f34bd5e Update dependency into-stream to v8 (#2507)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-12-02 12:15:23 -06:00
ec0c561e36 Auto-generated code for main (#2504)
Co-authored-by: Josh Mock <joshua.mock@elastic.co>
2024-12-02 12:12:27 -06:00
c1e90b12f0 Update dependency @elastic/request-converter to v8.16.2 (#2505)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-12-02 18:12:01 +00:00
5cb670256e Update dependency typescript to v5.7.2 (#2506)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
Co-authored-by: Josh Mock <joshua.mock@elastic.co>
2024-12-02 18:07:44 +00:00
86f488f68f Update dependency @types/node to v22.10.1 (#2499)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-12-02 12:03:41 -06:00
6009fab7fe Update changelog to include 8.16.2 and 8.15.3 (#2490) 2024-11-21 10:40:58 -06:00
26ae260058 Ignore tap artifacts (#2487) 2024-11-21 10:14:17 -06:00
fbbbece711 Add docstrings for Client class and related properties (#2484) 2024-11-20 14:43:36 -06:00
a30c3dca2d Add changelog for 8.16.1 (#2479) 2024-11-18 13:32:52 -06:00
36cfacc409 Fix ECMAScript import (#2475) 2024-11-18 12:14:58 -06:00
6dc83cd33e Auto-generated code for main (#2473)
Co-authored-by: Josh Mock <joshua.mock@elastic.co>
2024-11-18 11:29:36 -06:00
7c7ce29127 Update dependency @elastic/request-converter to v8.16.1 (#2469)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-11-18 11:13:38 -06:00
2b890af355 Update integration test automation branches (#2463) 2024-11-14 09:37:36 -06:00
421f953b00 Upgrade ts-standard (#2460) 2024-11-13 10:42:33 -06:00
c5e4107181 Update peter-evans/create-pull-request action to v7 (#2456)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-11-12 13:44:49 -06:00
5880c84c13 Update dependency typescript to v5 (#2455)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-11-12 17:34:24 +00:00
290639d168 Update dependency chai to v5 (#2453)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-11-12 11:27:52 -06:00
0b90613694 Address feedback and add clarity (#2449) 2024-11-12 10:51:18 -06:00
1ad057abcc Update dependency @types/split2 to v4 (#2438)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-11-11 11:51:35 -06:00
44d890ec57 Update dependency @types/node to v22 (#2437)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
Co-authored-by: Josh Mock <joshua.mock@elastic.co>
2024-11-11 17:16:54 +00:00
2b2a2f03e6 Auto-generated code for main (#2439) 2024-11-11 11:05:18 -06:00
7bcd75bdb0 Add changelog for 8.15.2 (#2444) 2024-11-11 09:47:00 -06:00
2455dac4e5 Add _id to the result of helpers.search (#2432) 2024-11-06 12:20:10 -06:00
edb5563bf8 Update dependency @types/node to v18.19.64 (#2421)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-11-04 22:21:49 +00:00
11939fd22c Add streaming support to Arrow helper (#2407) 2024-11-04 15:47:53 -06:00
e0c613f898 Auto-generated code for main (#2425) 2024-11-04 10:06:34 -06:00
20f2c740cd Update buildkite plugin junit-annotate to v2.5.0 (#2422)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-11-04 10:01:14 -06:00
97bdca22d8 Update actions/stale action to v9 (#2423)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-11-04 10:00:38 -06:00
a7123f807d Auto-generated code for main (#2384) 2024-10-28 15:12:59 -05:00
20ac2a637e Skip flaky test (#2416) 2024-10-28 11:46:10 -05:00
e287c1edd9 Don't use hash-based Docker image version (#2414) 2024-10-28 11:19:02 -05:00
90d43f4f28 Pin dependencies (#2408)
Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
2024-10-28 11:03:46 -05:00
572927b4f1 Don't generate coverage during standard unit test run (#2404) 2024-10-24 11:55:11 -05:00
86b4d4e2f9 Upgrade tap to latest (#2400) 2024-10-24 11:33:46 -05:00
8e79bf847a Enable Renovate (#2398) 2024-10-23 11:38:08 -05:00
cef328c93d Prep 8.16.0 (#2396) 2024-10-23 08:48:04 -05:00
c3247d0c66 Basic helper for ES|QL's Apache Arrow output format (#2391) 2024-10-22 15:00:18 -05:00
e9fdcb0647 Add doc about timeout best practices (#2381) 2024-10-18 11:13:41 -05:00
82acfc33a9 Respect disablePrototypePoisoningProtection option (#2380) 2024-10-16 14:19:44 -05:00
661caf8422 Update changelog for 8.15.1 (#2379) 2024-10-15 11:36:54 -05:00
3430734fe0 Auto-generated code for main (#2371)
Co-authored-by: Josh Mock <joshua.mock@elastic.co>
2024-10-14 12:14:09 -05:00
810e009202 Update Github actions to reflect security best practices (#2375)
* Update Github actions to reflect security best practices

* Upgrade @types/node
2024-10-14 11:27:22 -05:00
c274b1b32f Upgraded @types/node package to v18 (#2374) 2024-10-14 11:13:55 -05:00
428a7b023d Auto-generated code for main (#2368) 2024-09-30 13:37:11 -05:00
aad41df231 Upgrade transport to 8.8.1 (#2366) 2024-09-26 13:29:27 -05:00
34704b2e5c Auto-generated code for main (#2362) 2024-09-23 14:54:43 -05:00
398 changed files with 26790 additions and 28732 deletions

View File

@ -6,7 +6,7 @@ steps:
env: env:
NODE_VERSION: "{{ matrix.nodejs }}" NODE_VERSION: "{{ matrix.nodejs }}"
TEST_SUITE: "{{ matrix.suite }}" TEST_SUITE: "{{ matrix.suite }}"
STACK_VERSION: 8.15.0 STACK_VERSION: 8.16.0
matrix: matrix:
setup: setup:
suite: suite:
@ -25,7 +25,7 @@ steps:
provider: "gcp" provider: "gcp"
image: family/core-ubuntu-2204 image: family/core-ubuntu-2204
plugins: plugins:
- junit-annotate#v2.4.1: - junit-annotate#v2.6.0:
artifacts: "junit-output/junit-*.xml" artifacts: "junit-output/junit-*.xml"
job-uuid-file-pattern: "junit-(.*).xml" job-uuid-file-pattern: "junit-(.*).xml"
fail-build-on-error: true fail-build-on-error: true

View File

@ -5,3 +5,4 @@ elasticsearch
.git .git
lib lib
junit-output junit-output
.tap

14
.github/make.sh vendored
View File

@ -65,7 +65,7 @@ codegen)
if [ -v "$VERSION" ] || [[ -z "$VERSION" ]]; then if [ -v "$VERSION" ] || [[ -z "$VERSION" ]]; then
# fall back to branch name or `main` if no VERSION is set # fall back to branch name or `main` if no VERSION is set
branch_name=$(git rev-parse --abbrev-ref HEAD) branch_name=$(git rev-parse --abbrev-ref HEAD)
if [[ "$branch_name" =~ ^[0-9]+\.[0-9]+ ]]; then if [[ "$branch_name" =~ ^[0-9]+\.([0-9]+|x) ]]; then
echo -e "\033[36;1mTARGET: codegen -> No VERSION argument found, using branch name: \`$branch_name\`\033[0m" echo -e "\033[36;1mTARGET: codegen -> No VERSION argument found, using branch name: \`$branch_name\`\033[0m"
VERSION="$branch_name" VERSION="$branch_name"
else else
@ -150,7 +150,7 @@ if [[ -z "${BUILDKITE+x}" ]] && [[ -z "${CI+x}" ]] && [[ -z "${GITHUB_ACTIONS+x}
-u "$(id -u):$(id -g)" \ -u "$(id -u):$(id -g)" \
--volume "$repo:/usr/src/elasticsearch-js" \ --volume "$repo:/usr/src/elasticsearch-js" \
--volume /usr/src/elasticsearch-js/node_modules \ --volume /usr/src/elasticsearch-js/node_modules \
--volume "$(realpath $repo/../elastic-client-generator-js):/usr/src/elastic-client-generator-js" \ --volume "$(realpath "$repo/../elastic-client-generator-js"):/usr/src/elastic-client-generator-js" \
--env "WORKFLOW=$WORKFLOW" \ --env "WORKFLOW=$WORKFLOW" \
--name make-elasticsearch-js \ --name make-elasticsearch-js \
--rm \ --rm \
@ -159,6 +159,14 @@ if [[ -z "${BUILDKITE+x}" ]] && [[ -z "${CI+x}" ]] && [[ -z "${GITHUB_ACTIONS+x}
node .buildkite/make.mjs --task $TASK ${TASK_ARGS[*]}" node .buildkite/make.mjs --task $TASK ${TASK_ARGS[*]}"
else else
echo -e "\033[34;1mINFO: Running in CI mode" echo -e "\033[34;1mINFO: Running in CI mode"
# determine branch to clone
GENERATOR_BRANCH="main"
if [[ "$VERSION" == 8.* ]]; then
GENERATOR_BRANCH="8.x"
fi
echo -e "\033[34;1mINFO: Generator branch: $GENERATOR_BRANCH"
docker run \ docker run \
--volume "$repo:/usr/src/elasticsearch-js" \ --volume "$repo:/usr/src/elasticsearch-js" \
--volume /usr/src/elasticsearch-js/node_modules \ --volume /usr/src/elasticsearch-js/node_modules \
@ -168,7 +176,7 @@ else
--rm \ --rm \
$product \ $product \
/bin/bash -c "cd /usr/src && \ /bin/bash -c "cd /usr/src && \
git clone https://$CLIENTS_GITHUB_TOKEN@github.com/elastic/elastic-client-generator-js.git && \ git clone --branch $GENERATOR_BRANCH https://$CLIENTS_GITHUB_TOKEN@github.com/elastic/elastic-client-generator-js.git && \
mkdir -p /usr/src/elastic-client-generator-js/output && \ mkdir -p /usr/src/elastic-client-generator-js/output && \
cd /usr/src/elasticsearch-js && \ cd /usr/src/elasticsearch-js && \
node .buildkite/make.mjs --task $TASK ${TASK_ARGS[*]}" node .buildkite/make.mjs --task $TASK ${TASK_ARGS[*]}"

26
.github/stale.yml vendored
View File

@ -1,26 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 15
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "discussion"
- "feature request"
- "bug"
- "todo"
- "good first issue"
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: |
We understand that this might be important for you, but this issue has been automatically marked as stale because it has not had recent activity either from our end or yours.
It will be closed if no further activity occurs, please write a comment if you would like to keep this going.
Note: in the past months we have built a new client, that has just landed in master. If you want to open an issue or a pr for the legacy client, you should do that in https://github.com/elastic/elasticsearch-js-legacy
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View File

@ -1,18 +0,0 @@
name: Automerge
on:
pull_request_review:
types:
- submitted
jobs:
automerge:
runs-on: ubuntu-latest
if: github.event.review.state == 'approved'
steps:
- uses: reitermarkus/automerge@v2
with:
token: ${{ secrets.GH_TOKEN }}
merge-method: squash
pull-request-author-associations: OWNER
review-author-associations: OWNER,CONTRIBUTOR

View File

@ -11,8 +11,10 @@ jobs:
outputs: outputs:
src-only: "${{ steps.changes.outputs.src-only }}" src-only: "${{ steps.changes.outputs.src-only }}"
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: dorny/paths-filter/@v3.0.2 with:
persist-credentials: false
- uses: dorny/paths-filter/@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes id: changes
with: with:
filters: | filters: |
@ -30,14 +32,16 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
node-version: [18.x, 20.x, 22.x] node-version: [18.x, 20.x, 22.x, 23.x]
os: [ubuntu-latest, windows-latest, macOS-latest] os: [ubuntu-latest, windows-latest, macOS-latest]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
@ -53,15 +57,21 @@ jobs:
run: | run: |
npm run test:unit npm run test:unit
- name: ECMAScript module test
run: |
npm run test:esm
license: license:
name: License check name: License check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
persist-credentials: false
- name: Use Node.js - name: Use Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4
with: with:
node-version: 22.x node-version: 22.x
@ -86,10 +96,12 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest] os: [ubuntu-latest, windows-latest, macOS-latest]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
persist-credentials: false
- name: Use Bun - name: Use Bun
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2
- name: Install - name: Install
run: | run: |
@ -103,12 +115,6 @@ jobs:
run: | run: |
bun run test:unit-bun bun run test:unit-bun
auto-approve: - name: ECMAScript module test
name: Auto-approve run: |
needs: [test, license] bun run test:esm
runs-on: ubuntu-latest
permissions:
pull-requests: write
if: github.actor == 'elasticmachine'
steps:
- uses: hmarr/auto-approve-action@v4

View File

@ -12,25 +12,29 @@ jobs:
contents: write contents: write
id-token: write id-token: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false
ref: ${{ github.event.inputs.branch }} ref: ${{ github.event.inputs.branch }}
- uses: actions/setup-node@v4 - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4
with: with:
node-version: "22.x" node-version: "22.x"
registry-url: "https://registry.npmjs.org" registry-url: "https://registry.npmjs.org"
- run: npm install -g npm - run: npm install -g npm
- run: npm install - run: npm install
- run: npm test - run: npm test
- run: npm publish --provenance --access public - run: npm publish --provenance --access public --tag alpha
env: env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: | - name: Publish version on GitHub
run: |
version=$(jq -r .version package.json) version=$(jq -r .version package.json)
gh release create \ gh release create \
-n "[Changelog](https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/$BRANCH_NAME/changelog-client.html)" \ -n "This is a 9.0.0 pre-release alpha. Changes may not be stable." \
--latest=false \
--prerelease \
--target "$BRANCH_NAME" \ --target "$BRANCH_NAME" \
-t "v$version" \ --title "v$version" \
"v$version" "v$version"
env: env:
BRANCH_NAME: ${{ github.event.inputs.branch }} BRANCH_NAME: ${{ github.event.inputs.branch }}

View File

@ -26,26 +26,28 @@ jobs:
) )
) )
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false
repository: elastic/elasticsearch-js repository: elastic/elasticsearch-js
ref: main ref: main
path: stack path: stack
fetch-depth: 0 fetch-depth: 0
- uses: actions/checkout@v4 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false
repository: elastic/elasticsearch-serverless-js repository: elastic/elasticsearch-serverless-js
ref: main ref: main
path: serverless path: serverless
- name: Apply patch from stack to serverless - name: Apply patch from stack to serverless
id: apply-patch id: apply-patch
run: $GITHUB_WORKSPACE/stack/.github/workflows/serverless-patch.sh run: $GITHUB_WORKSPACE/stack/.github/workflows/serverless-patch.sh
- uses: peter-evans/create-pull-request@v6 - uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7
with: with:
token: ${{ secrets.GH_TOKEN }} token: ${{ secrets.GH_TOKEN }}
path: serverless path: serverless
title: 'Apply patch from elastic/elasticsearch-js#${{ github.event.pull_request.number }}' title: "Apply patch from elastic/elasticsearch-js#${{ github.event.pull_request.number }}"
commit-message: 'Apply patch from elastic/elasticsearch-js#${{ github.event.pull_request.number }}' commit-message: "Apply patch from elastic/elasticsearch-js#${{ github.event.pull_request.number }}"
body-path: /tmp/pr_body body-path: /tmp/pr_body
draft: '${{ steps.apply-patch.outputs.PR_DRAFT }}' draft: "${{ steps.apply-patch.outputs.PR_DRAFT }}"
add-paths: ':!*.rej' add-paths: ":!*.rej"

View File

@ -1,21 +1,21 @@
--- ---
name: 'Close stale issues and PRs' name: "Close stale issues and PRs"
on: on:
schedule: schedule:
- cron: '30 1 * * *' - cron: "30 1 * * *"
jobs: jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@v8 - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9
with: with:
stale-issue-label: stale stale-issue-label: stale
stale-pr-label: stale stale-pr-label: stale
days-before-stale: 90 days-before-stale: 90
days-before-close: 14 days-before-close: 14
exempt-issue-labels: 'good first issue' exempt-issue-labels: "good first issue,tracking"
close-issue-label: closed-stale close-issue-label: closed-stale
close-pr-label: closed-stale close-pr-label: closed-stale
stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove the `stale` label, or leave a comment, or this will be closed in 14 days.' stale-issue-message: "This issue is stale because it has been open 90 days with no activity. Remove the `stale` label, or leave a comment, or this will be closed in 14 days."
stale-pr-message: 'This pull request is stale because it has been open 90 days with no activity. Remove the `stale` label, or leave a comment, or this will be closed in 14 days.' stale-pr-message: "This pull request is stale because it has been open 90 days with no activity. Remove the `stale` label, or leave a comment, or this will be closed in 14 days."

3
.gitignore vendored
View File

@ -65,3 +65,6 @@ test/bundlers/parcel-test/.parcel-cache
lib lib
junit-output junit-output
bun.lockb bun.lockb
test-results
processinfo
.tap

View File

@ -73,3 +73,4 @@ CONTRIBUTING.md
src src
bun.lockb bun.lockb
.tap

View File

@ -42,6 +42,9 @@ spec:
main: main:
branch: "main" branch: "main"
cronline: "@daily" cronline: "@daily"
8_14: 8_x:
branch: "8.14" branch: "8.x"
cronline: "@daily"
8_14:
branch: "8.16"
cronline: "@daily" cronline: "@daily"

View File

@ -252,8 +252,8 @@ const client = new Client({
---- ----
|`disablePrototypePoisoningProtection` |`disablePrototypePoisoningProtection`
|`boolean`, `'proto'`, `'constructor'` - By the default the client will protect you against prototype poisoning attacks. Read https://web.archive.org/web/20200319091159/https://hueniverse.com/square-brackets-are-the-enemy-ff5b9fd8a3e8?gi=184a27ee2a08[this article] to learn more. If needed you can disable prototype poisoning protection entirely or one of the two checks. Read the `secure-json-parse` https://github.com/fastify/secure-json-parse[documentation] to learn more. + |`boolean`, `'proto'`, `'constructor'` - The client can protect you against prototype poisoning attacks. Read https://web.archive.org/web/20200319091159/https://hueniverse.com/square-brackets-are-the-enemy-ff5b9fd8a3e8?gi=184a27ee2a08[this article] to learn more about this security concern. If needed, you can enable prototype poisoning protection entirely (`false`) or one of the two checks (`'proto'` or `'constructor'`). For performance reasons, it is disabled by default. Read the `secure-json-parse` https://github.com/fastify/secure-json-parse[documentation] to learn more. +
_Default:_ `false` _Default:_ `true`
|`caFingerprint` |`caFingerprint`
|`string` - If configured, verify that the fingerprint of the CA certificate that has signed the certificate of the server matches the supplied fingerprint. Only accepts SHA256 digest fingerprints. + |`string` - If configured, verify that the fingerprint of the CA certificate that has signed the certificate of the server matches the supplied fingerprint. Only accepts SHA256 digest fingerprints. +

View File

@ -1,6 +1,130 @@
[[changelog-client]] [[changelog-client]]
== Release notes == Release notes
[discrete]
=== 9.0.0
[discrete]
==== Breaking changes
[discrete]
===== Drop support for deprecated `body` parameter
In 8.0, the top-level `body` parameter that was available on all API functions <<remove-body-key,was deprecated>>. In 9.0 this property is completely removed.
[discrete]
=== 8.17.0
[discrete]
==== Features
[discrete]
===== Support for Elasticsearch `v8.17`
You can find all the API changes
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/release-notes-8.17.0.html[here].
[discrete]
=== 8.16.3
[discrete]
==== Fixes
[discrete]
===== Improved support for Elasticsearch `v8.16`
Updated TypeScript types based on fixes and improvements to the Elasticsearch specification.
[discrete]
=== 8.16.2
[discrete]
==== Fixes
[discrete]
===== Improved support for Elasticsearch `v8.16`
Updated TypeScript types based on fixes and improvements to the Elasticsearch specification.
[discrete]
===== Drop testing artifacts from npm package
Tap, the unit testing tool used by this project, was recently upgraded and started writing to a `.tap` directory. Since tests are run prior to an `npm publish` in CI, this directory was being included in the published package and bloating its size.
[discrete]
=== 8.16.1
[discrete]
==== Fixes
[discrete]
===== Fix ECMAScript imports
Fixed package configuration to correctly support native ECMAScript `import` syntax.
[discrete]
=== 8.16.0
[discrete]
==== Features
[discrete]
===== Support for Elasticsearch `v8.16`
You can find all the API changes
https://www.elastic.co/guide/en/elasticsearch/reference/8.16/release-notes-8.16.0.html[here].
[discrete]
===== Support Apache Arrow in ES|QL helper
The ES|QL helper can now return results as an Apache Arrow `Table` or `RecordBatchReader`, which enables high-performance calculations on ES|QL results, even if the response data is larger than the system's available memory. See <<esql-helper>> for more information.
[discrete]
==== Fixes
[discrete]
===== Pass prototype poisoning options to serializer correctly
The client's `disablePrototypePoisoningProtection` option was set to `true` by default, but when it was set to any other value it was ignored, making it impossible to enable prototype poisoning protection without providing a custom serializer implementation.
[discrete]
=== 8.15.3
[discrete]
==== Fixes
[discrete]
===== Improved support for Elasticsearch `v8.15`
Updated TypeScript types based on fixes and improvements to the Elasticsearch specification.
[discrete]
===== Drop testing artifacts from npm package
Tap, the unit testing tool, was recently upgraded and started writing to a `.tap` directory. Since tests are run prior to an `npm publish` in CI, this directory was being included in the published package and bloating its size.
[discrete]
=== 8.15.2
[discrete]
==== Fixes
[discrete]
===== Improved support for Elasticsearch `v8.15`
Updated TypeScript types based on fixes and improvements to the Elasticsearch specification.
[discrete]
=== 8.15.1
[discrete]
==== Fixes
[discrete]
===== Improved support for Elasticsearch `v8.15`
Updated TypeScript types based on fixes and improvements to the Elasticsearch specification.
[discrete] [discrete]
=== 8.15.0 === 8.15.0
@ -555,6 +679,7 @@ ac.abort()
---- ----
[discrete] [discrete]
[[remove-body-key]]
===== Remove the body key from the request ===== Remove the body key from the request
*Breaking: Yes* | *Migration effort: Small* *Breaking: Yes* | *Migration effort: Small*

View File

@ -2,10 +2,11 @@
== Configuration == Configuration
The client is designed to be easily configured for your needs. In the following The client is designed to be easily configured for your needs. In the following
section, you can see the possible options that you can use to configure it. section, you can see the possible options that you can use to configure it.
* <<basic-config>> * <<basic-config>>
* <<advanced-config>> * <<advanced-config>>
* <<timeout-best-practices>>
* <<child>> * <<child>>
* <<client-testing>> * <<client-testing>>

View File

@ -1,7 +1,7 @@
[[client-connecting]] [[client-connecting]]
== Connecting == Connecting
This page contains the information you need to connect and use the Client with This page contains the information you need to connect and use the Client with
{es}. {es}.
**On this page** **On this page**
@ -19,7 +19,7 @@ This page contains the information you need to connect and use the Client with
[discrete] [discrete]
=== Authentication === Authentication
This document contains code snippets to show you how to connect to various {es} This document contains code snippets to show you how to connect to various {es}
providers. providers.
@ -27,18 +27,18 @@ providers.
[[auth-ec]] [[auth-ec]]
==== Elastic Cloud ==== Elastic Cloud
If you are using https://www.elastic.co/cloud[Elastic Cloud], the client offers If you are using https://www.elastic.co/cloud[Elastic Cloud], the client offers
an easy way to connect to it via the `cloud` option. You must pass the Cloud ID an easy way to connect to it via the `cloud` option. You must pass the Cloud ID
that you can find in the cloud console, then your username and password inside that you can find in the cloud console, then your username and password inside
the `auth` option. the `auth` option.
NOTE: When connecting to Elastic Cloud, the client will automatically enable NOTE: When connecting to Elastic Cloud, the client will automatically enable
both request and response compression by default, since it yields significant both request and response compression by default, since it yields significant
throughput improvements. Moreover, the client will also set the tls option throughput improvements. Moreover, the client will also set the tls option
`secureProtocol` to `TLSv1_2_method` unless specified otherwise. You can still `secureProtocol` to `TLSv1_2_method` unless specified otherwise. You can still
override this option by configuring them. override this option by configuring them.
IMPORTANT: Do not enable sniffing when using Elastic Cloud, since the nodes are IMPORTANT: Do not enable sniffing when using Elastic Cloud, since the nodes are
behind a load balancer, Elastic Cloud will take care of everything for you. behind a load balancer, Elastic Cloud will take care of everything for you.
Take a look https://www.elastic.co/blog/elasticsearch-sniffing-best-practices-what-when-why-how[here] Take a look https://www.elastic.co/blog/elasticsearch-sniffing-best-practices-what-when-why-how[here]
to know more. to know more.
@ -61,18 +61,18 @@ const client = new Client({
[[connect-self-managed-new]] [[connect-self-managed-new]]
=== Connecting to a self-managed cluster === Connecting to a self-managed cluster
By default {es} will start with security features like authentication and TLS By default {es} will start with security features like authentication and TLS
enabled. To connect to the {es} cluster you'll need to configure the Node.js {es} enabled. To connect to the {es} cluster you'll need to configure the Node.js {es}
client to use HTTPS with the generated CA certificate in order to make requests client to use HTTPS with the generated CA certificate in order to make requests
successfully. successfully.
If you're just getting started with {es} we recommend reading the documentation If you're just getting started with {es} we recommend reading the documentation
on https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html[configuring] on https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html[configuring]
and and
https://www.elastic.co/guide/en/elasticsearch/reference/current/starting-elasticsearch.html[starting {es}] https://www.elastic.co/guide/en/elasticsearch/reference/current/starting-elasticsearch.html[starting {es}]
to ensure your cluster is running as expected. to ensure your cluster is running as expected.
When you start {es} for the first time you'll see a distinct block like the one When you start {es} for the first time you'll see a distinct block like the one
below in the output from {es} (you may have to scroll up if it's been a while): below in the output from {es} (you may have to scroll up if it's been a while):
[source,sh] [source,sh]
@ -90,24 +90,24 @@ below in the output from {es} (you may have to scroll up if it's been a while):
---- ----
Depending on the circumstances there are two options for verifying the HTTPS Depending on the circumstances there are two options for verifying the HTTPS
connection, either verifying with the CA certificate itself or via the HTTP CA connection, either verifying with the CA certificate itself or via the HTTP CA
certificate fingerprint. certificate fingerprint.
[discrete] [discrete]
[[auth-tls]] [[auth-tls]]
==== TLS configuration ==== TLS configuration
The generated root CA certificate can be found in the `certs` directory in your The generated root CA certificate can be found in the `certs` directory in your
{es} config location (`$ES_CONF_PATH/certs/http_ca.crt`). If you're running {es} {es} config location (`$ES_CONF_PATH/certs/http_ca.crt`). If you're running {es}
in Docker there is in Docker there is
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html[additional documentation for retrieving the CA certificate]. https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html[additional documentation for retrieving the CA certificate].
Without any additional configuration you can specify `https://` node urls, and Without any additional configuration you can specify `https://` node urls, and
the certificates used to sign these requests will be verified. To turn off the certificates used to sign these requests will be verified. To turn off
certificate verification, you must specify an `tls` object in the top level certificate verification, you must specify an `tls` object in the top level
config and set `rejectUnauthorized: false`. The default `tls` values are the config and set `rejectUnauthorized: false`. The default `tls` values are the
same that Node.js's https://nodejs.org/api/tls.html#tls_tls_connect_options_callback[`tls.connect()`] same that Node.js's https://nodejs.org/api/tls.html#tls_tls_connect_options_callback[`tls.connect()`]
uses. uses.
[source,js] [source,js]
@ -152,7 +152,7 @@ const client = new Client({
}) })
---- ----
The certificate fingerprint can be calculated using `openssl x509` with the The certificate fingerprint can be calculated using `openssl x509` with the
certificate file: certificate file:
[source,sh] [source,sh]
@ -160,8 +160,8 @@ certificate file:
openssl x509 -fingerprint -sha256 -noout -in /path/to/http_ca.crt openssl x509 -fingerprint -sha256 -noout -in /path/to/http_ca.crt
---- ----
If you don't have access to the generated CA file from {es} you can use the If you don't have access to the generated CA file from {es} you can use the
following script to output the root CA fingerprint of the {es} instance with following script to output the root CA fingerprint of the {es} instance with
`openssl s_client`: `openssl s_client`:
[source,sh] [source,sh]
@ -186,8 +186,8 @@ SHA256 Fingerprint=A5:2D:D9:35:11:E8:C6:04:5E:21:F1:66:54:B7:7C:9E:E0:F3:4A:EA:2
WARNING: Running {es} without security enabled is not recommended. WARNING: Running {es} without security enabled is not recommended.
If your cluster is configured with If your cluster is configured with
https://www.elastic.co/guide/en/elasticsearch/reference/current/security-settings.html[security explicitly disabled] https://www.elastic.co/guide/en/elasticsearch/reference/current/security-settings.html[security explicitly disabled]
then you can connect via HTTP: then you can connect via HTTP:
[source,js] [source,js]
@ -208,14 +208,14 @@ Following you can find all the supported authentication strategies.
[[auth-apikey]] [[auth-apikey]]
==== ApiKey authentication ==== ApiKey authentication
You can use the You can use the
{ref-7x}/security-api-create-api-key.html[ApiKey] {ref-7x}/security-api-create-api-key.html[ApiKey]
authentication by passing the `apiKey` parameter via the `auth` option. The authentication by passing the `apiKey` parameter via the `auth` option. The
`apiKey` parameter can be either a base64 encoded string or an object with the `apiKey` parameter can be either a base64 encoded string or an object with the
values that you can obtain from the values that you can obtain from the
{ref-7x}/security-api-create-api-key.html[create api key endpoint]. {ref-7x}/security-api-create-api-key.html[create api key endpoint].
NOTE: If you provide both basic authentication credentials and the ApiKey NOTE: If you provide both basic authentication credentials and the ApiKey
configuration, the ApiKey takes precedence. configuration, the ApiKey takes precedence.
[source,js] [source,js]
@ -268,10 +268,10 @@ const client = new Client({
[[auth-basic]] [[auth-basic]]
==== Basic authentication ==== Basic authentication
You can provide your credentials by passing the `username` and `password` You can provide your credentials by passing the `username` and `password`
parameters via the `auth` option. parameters via the `auth` option.
NOTE: If you provide both basic authentication credentials and the Api Key NOTE: If you provide both basic authentication credentials and the Api Key
configuration, the Api Key will take precedence. configuration, the Api Key will take precedence.
[source,js] [source,js]
@ -342,14 +342,14 @@ const result = await client.search({
}, { meta: true }) }, { meta: true })
---- ----
In this case, the result will be: In this case, the result will be:
[source,ts] [source,ts]
---- ----
{ {
body: object | boolean body: object | boolean
statusCode: number statusCode: number
headers: object headers: object
warnings: [string], warnings: string[],
meta: object meta: object
} }
---- ----
@ -361,7 +361,7 @@ NOTE: The body is a boolean value when you use `HEAD` APIs.
If needed, you can abort a running request by using the `AbortController` standard. If needed, you can abort a running request by using the `AbortController` standard.
CAUTION: If you abort a request, the request will fail with a CAUTION: If you abort a request, the request will fail with a
`RequestAbortedError`. `RequestAbortedError`.
@ -410,19 +410,23 @@ The supported request specific options are:
[cols=2*] [cols=2*]
|=== |===
|`ignore` |`ignore`
|`[number]` - HTTP status codes which should not be considered errors for this request. + |`number[]` - HTTP status codes which should not be considered errors for this request. +
_Default:_ `null` _Default:_ `null`
|`requestTimeout` |`requestTimeout`
|`number` - Max request timeout for the request in milliseconds, it overrides the client default. + |`number | string` - Max request timeout for the request in milliseconds, it overrides the client default. +
_Default:_ `30000` _Default:_ `30000`
|`retryOnTimeout`
|`boolean` - Retry requests that have timed out.
_Default:_ `false`
|`maxRetries` |`maxRetries`
|`number` - Max number of retries for the request, it overrides the client default. + |`number` - Max number of retries for the request, it overrides the client default. +
_Default:_ `3` _Default:_ `3`
|`compression` |`compression`
|`string, boolean` - Enables body compression for the request. + |`string | boolean` - Enables body compression for the request. +
_Options:_ `false`, `'gzip'` + _Options:_ `false`, `'gzip'` +
_Default:_ `false` _Default:_ `false`
@ -446,6 +450,10 @@ _Default:_ `null`
|`any` - Custom object per request. _(you can use it to pass data to the clients events)_ + |`any` - Custom object per request. _(you can use it to pass data to the clients events)_ +
_Default:_ `null` _Default:_ `null`
|`opaqueId`
|`string` - Set the `X-Opaque-Id` HTTP header. See {ref}/api-conventions.html#x-opaque-id
_Default:_ `null`
|`maxResponseSize` |`maxResponseSize`
|`number` - When configured, it verifies that the uncompressed response size is lower than the configured number, if it's higher it will abort the request. It cannot be higher than buffer.constants.MAX_STRING_LENTGH + |`number` - When configured, it verifies that the uncompressed response size is lower than the configured number, if it's higher it will abort the request. It cannot be higher than buffer.constants.MAX_STRING_LENTGH +
_Default:_ `null` _Default:_ `null`
@ -458,6 +466,17 @@ _Default:_ `null`
|`AbortSignal` - The AbortSignal instance to allow request abortion. + |`AbortSignal` - The AbortSignal instance to allow request abortion. +
_Default:_ `null` _Default:_ `null`
|`meta`
|`boolean` - Rather than returning the body, return an object containing `body`, `statusCode`, `headers` and `meta` keys +
_Default_: `false`
|`redaction`
|`object` - Options for redacting potentially sensitive data from error metadata. See <<redaction>>.
|`retryBackoff`
|`(min: number, max: number, attempt: number) => number;` - A function that calculates how long to sleep, in seconds, before the next request retry +
_Default:_ A built-in function that uses exponential backoff with jitter.
|=== |===
[discrete] [discrete]
@ -537,8 +556,8 @@ Resources used to assess these recommendations:
~Added~ ~in~ ~`v7.10.0`~ ~Added~ ~in~ ~`v7.10.0`~
If you need to pass through an http(s) proxy for connecting to {es}, the client If you need to pass through an http(s) proxy for connecting to {es}, the client
out of the box offers a handy configuration for helping you with it. Under the out of the box offers a handy configuration for helping you with it. Under the
hood, it uses the https://github.com/delvedor/hpagent[`hpagent`] module. hood, it uses the https://github.com/delvedor/hpagent[`hpagent`] module.
IMPORTANT: In versions 8.0+ of the client, the default `Connection` type is set to `UndiciConnection`, which does not support proxy configurations. IMPORTANT: In versions 8.0+ of the client, the default `Connection` type is set to `UndiciConnection`, which does not support proxy configurations.
@ -715,5 +734,5 @@ This pre-flight product check allows the client to establish the version of Elas
that it is communicating with. The product check requires one additional HTTP request to that it is communicating with. The product check requires one additional HTTP request to
be sent to the server as part of the request pipeline before the main API call is sent. be sent to the server as part of the request pipeline before the main API call is sent.
In most cases, this will succeed during the very first API call that the client sends. In most cases, this will succeed during the very first API call that the client sends.
Once the product check completes, no further product check HTTP requests are sent for Once the product check completes, no further product check HTTP requests are sent for
subsequent API calls. subsequent API calls.

View File

@ -0,0 +1,46 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "retrievers_example",
retriever: {
rrf: {
retrievers: [
{
standard: {
query: {
range: {
year: {
gt: 2023,
},
},
},
},
},
{
standard: {
query: {
term: {
topic: "elastic",
},
},
},
},
],
rank_window_size: 10,
rank_constant: 1,
},
},
_source: false,
aggs: {
topics: {
terms: {
field: "topic",
},
},
},
});
console.log(response);
----

View File

@ -0,0 +1,18 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.inference.put({
task_type: "rerank",
inference_id: "my-rerank-model",
inference_config: {
service: "cohere",
service_settings: {
model_id: "rerank-english-v3.0",
api_key: "{{COHERE_API_KEY}}",
},
},
});
console.log(response);
----

View File

@ -5,10 +5,16 @@
---- ----
const response = await client.indices.create({ const response = await client.indices.create({
index: "idx", index: "idx",
mappings: { settings: {
_source: { index: {
mode: "synthetic", mapping: {
source: {
mode: "synthetic",
},
},
}, },
},
mappings: {
properties: { properties: {
kwd: { kwd: {
type: "keyword", type: "keyword",

View File

@ -26,7 +26,7 @@ const response1 = await client.cluster.putComponentTemplate({
type: "keyword", type: "keyword",
script: { script: {
source: source:
"emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))", "emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH))",
}, },
}, },
}, },

View File

@ -0,0 +1,12 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.tasks.list({
human: "true",
detailed: "true",
actions: "indices:data/write/bulk",
});
console.log(response);
----

View File

@ -4,7 +4,7 @@
[source, js] [source, js]
---- ----
const response = await client.ingest.putPipeline({ const response = await client.ingest.putPipeline({
id: "alibabacloud_ai_search_embeddings", id: "alibabacloud_ai_search_embeddings_pipeline",
processors: [ processors: [
{ {
inference: { inference: {

View File

@ -0,0 +1,8 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.cluster.reroute();
console.log(response);
----

View File

@ -3,8 +3,8 @@
[source, js] [source, js]
---- ----
const response = await client.nodes.hotThreads({ const response = await client.indices.getMapping({
node_id: "my-node,my-other-node", index: "kibana_sample_data_ecommerce",
}); });
console.log(response); console.log(response);
---- ----

View File

@ -11,6 +11,8 @@ const response = await client.indices.putSettings({
"index.indexing.slowlog.threshold.index.debug": "2s", "index.indexing.slowlog.threshold.index.debug": "2s",
"index.indexing.slowlog.threshold.index.trace": "500ms", "index.indexing.slowlog.threshold.index.trace": "500ms",
"index.indexing.slowlog.source": "1000", "index.indexing.slowlog.source": "1000",
"index.indexing.slowlog.reformat": true,
"index.indexing.slowlog.include.user": true,
}, },
}); });
console.log(response); console.log(response);

View File

@ -0,0 +1,42 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.indices.create({
index: "my-rank-vectors-bit",
mappings: {
properties: {
my_vector: {
type: "rank_vectors",
element_type: "bit",
},
},
},
});
console.log(response);
const response1 = await client.bulk({
index: "my-rank-vectors-bit",
refresh: "true",
operations: [
{
index: {
_id: "1",
},
},
{
my_vector: [127, -127, 0, 1, 42],
},
{
index: {
_id: "2",
},
},
{
my_vector: "8100012a7f",
},
],
});
console.log(response1);
----

View File

@ -14,6 +14,7 @@ const response = await client.inference.put({
min_number_of_allocations: 3, min_number_of_allocations: 3,
max_number_of_allocations: 10, max_number_of_allocations: 10,
}, },
num_threads: 1,
model_id: ".multilingual-e5-small", model_id: ".multilingual-e5-small",
}, },
}, },

View File

@ -10,7 +10,7 @@ const response = await client.search({
type: "keyword", type: "keyword",
script: { script: {
source: source:
"emit(doc['@timestamp'].value.dayOfWeekEnum\n .getDisplayName(TextStyle.FULL, Locale.ROOT))", "emit(doc['@timestamp'].value.dayOfWeekEnum\n .getDisplayName(TextStyle.FULL, Locale.ENGLISH))",
}, },
}, },
}, },

View File

@ -0,0 +1,49 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "retrievers_example_nested",
retriever: {
rrf: {
retrievers: [
{
standard: {
query: {
nested: {
path: "nested_field",
inner_hits: {
name: "nested_vector",
_source: false,
fields: ["nested_field.paragraph_id"],
},
query: {
knn: {
field: "nested_field.nested_vector",
query_vector: [1, 0, 0.5],
k: 10,
},
},
},
},
},
},
{
standard: {
query: {
term: {
topic: "ai",
},
},
},
},
],
rank_window_size: 10,
rank_constant: 1,
},
},
_source: ["topic"],
});
console.log(response);
----

View File

@ -0,0 +1,19 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.transport.request({
method: "POST",
path: "/_query/async",
querystring: {
format: "json",
},
body: {
query:
"\n FROM my-index-000001,cluster_one:my-index-000001,cluster_two:my-index*\n | STATS COUNT(http.response.status_code) BY user.id\n | LIMIT 2\n ",
include_ccs_metadata: true,
},
});
console.log(response);
----

View File

@ -10,7 +10,7 @@ const response = await client.ingest.putPipeline({
{ {
attachment: { attachment: {
field: "data", field: "data",
remove_binary: false, remove_binary: true,
}, },
}, },
], ],

View File

@ -0,0 +1,18 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "cooking_blog",
query: {
match: {
title: {
query: "fluffy pancakes breakfast",
minimum_should_match: 2,
},
},
},
});
console.log(response);
----

View File

@ -9,7 +9,7 @@ const response = await client.connector.put({
name: "My Connector", name: "My Connector",
description: "My Connector to sync data to Elastic index from Google Drive", description: "My Connector to sync data to Elastic index from Google Drive",
service_type: "google_drive", service_type: "google_drive",
language: "english", language: "en",
}); });
console.log(response); console.log(response);
---- ----

View File

@ -0,0 +1,57 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "retrievers_example",
retriever: {
rrf: {
retrievers: [
{
standard: {
query: {
term: {
topic: "elastic",
},
},
},
},
{
rrf: {
retrievers: [
{
standard: {
query: {
query_string: {
query:
"(information retrieval) OR (artificial intelligence)",
default_field: "text",
},
},
},
},
{
knn: {
field: "vector",
query_vector: [0.23, 0.67, 0.89],
k: 3,
num_candidates: 5,
},
},
],
rank_window_size: 10,
rank_constant: 1,
},
},
],
rank_window_size: 10,
rank_constant: 1,
},
},
_source: false,
size: 1,
explain: true,
});
console.log(response);
----

View File

@ -3,8 +3,9 @@
[source, js] [source, js]
---- ----
const response = await client.searchApplication.renderQuery({ const response = await client.transport.request({
name: "my-app", method: "POST",
path: "/_application/search_application/my-app/_render_query",
body: { body: {
params: { params: {
query_string: "my first query", query_string: "my first query",

View File

@ -0,0 +1,21 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.inference.put({
task_type: "text_embedding",
inference_id: "watsonx-embeddings",
inference_config: {
service: "watsonxai",
service_settings: {
api_key: "<api_key>",
url: "<url>",
model_id: "ibm/slate-30m-english-rtrvr",
project_id: "<project_id>",
api_version: "2024-03-14",
},
},
});
console.log(response);
----

View File

@ -1,15 +0,0 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.cluster.putSettings({
persistent: {
"cluster.routing.allocation.disk.watermark.low": "100gb",
"cluster.routing.allocation.disk.watermark.high": "50gb",
"cluster.routing.allocation.disk.watermark.flood_stage": "10gb",
"cluster.info.update.interval": "1m",
},
});
console.log(response);
----

View File

@ -0,0 +1,15 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.transport.request({
method: "GET",
path: "/_connector/_sync_job",
querystring: {
connector_id: "my-connector-id",
size: "1",
},
});
console.log(response);
----

View File

@ -0,0 +1,20 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.transport.request({
method: "POST",
path: "/_inference/chat_completion/openai-completion/_stream",
body: {
model: "gpt-4o",
messages: [
{
role: "user",
content: "What is Elastic?",
},
],
},
});
console.log(response);
----

View File

@ -0,0 +1,18 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.update({
index: ".elastic-connectors",
id: "connector_id",
doc: {
features: {
native_connector_api_keys: {
enabled: true,
},
},
},
});
console.log(response);
----

View File

@ -0,0 +1,16 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.inference.put({
task_type: "my-inference-endpoint",
inference_id: "_update",
inference_config: {
service_settings: {
api_key: "<API_KEY>",
},
},
});
console.log(response);
----

View File

@ -0,0 +1,19 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.connector.updateConfiguration({
connector_id: "my-connector-id",
values: {
host: "127.0.0.1",
port: 5432,
username: "myuser",
password: "mypassword",
database: "chinook",
schema: "public",
tables: "album,artist",
},
});
console.log(response);
----

View File

@ -0,0 +1,28 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "my-index-bit-vectors",
query: {
script_score: {
query: {
match_all: {},
},
script: {
source: "dotProduct(params.query_vector, 'my_dense_vector')",
params: {
query_vector: [
0.23, 1.45, 3.67, 4.89, -0.56, 2.34, 3.21, 1.78, -2.45, 0.98, -0.12,
3.45, 4.56, 2.78, 1.23, 0.67, 3.89, 4.12, -2.34, 1.56, 0.78, 3.21,
4.12, 2.45, -1.67, 0.34, -3.45, 4.56, -2.78, 1.23, -0.67, 3.89,
-4.34, 2.12, -1.56, 0.78, -3.21, 4.45, 2.12, 1.67,
],
},
},
},
},
});
console.log(response);
----

View File

@ -11,7 +11,7 @@ const response = await client.searchApplication.put({
script: { script: {
lang: "mustache", lang: "mustache",
source: source:
'\n {\n "query": {\n "bool": {\n "must": [\n {{#query}}\n \n {{/query}}\n ],\n "filter": {{#toJson}}_es_filters{{/toJson}}\n }\n },\n "_source": {\n "includes": ["title", "plot"]\n },\n "highlight": {\n "fields": {\n "title": { "fragment_size": 0 },\n "plot": { "fragment_size": 200 }\n }\n },\n "aggs": {{#toJson}}_es_aggs{{/toJson}},\n "from": {{from}},\n "size": {{size}},\n "sort": {{#toJson}}_es_sort_fields{{/toJson}}\n }\n ', '\n {\n "query": {\n "bool": {\n "must": [\n {{#query}}\n {{/query}}\n ],\n "filter": {{#toJson}}_es_filters{{/toJson}}\n }\n },\n "_source": {\n "includes": ["title", "plot"]\n },\n "highlight": {\n "fields": {\n "title": { "fragment_size": 0 },\n "plot": { "fragment_size": 200 }\n }\n },\n "aggs": {{#toJson}}_es_aggs{{/toJson}},\n "from": {{from}},\n "size": {{size}},\n "sort": {{#toJson}}_es_sort_fields{{/toJson}}\n }\n ',
params: { params: {
query: "", query: "",
_es_filters: {}, _es_filters: {},

View File

@ -0,0 +1,15 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.indices.delete({
index: "books",
});
console.log(response);
const response1 = await client.indices.delete({
index: "my-explicit-mappings-books",
});
console.log(response1);
----

View File

@ -0,0 +1,26 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.security.createApiKey({
name: "my-connector-api-key",
role_descriptors: {
"my-connector-connector-role": {
cluster: ["monitor", "manage_connector"],
indices: [
{
names: [
"my-index_name",
".search-acl-filter-my-index_name",
".elastic-connectors*",
],
privileges: ["all"],
allow_restricted_indices: false,
},
],
},
},
});
console.log(response);
----

View File

@ -16,7 +16,7 @@ const response = await client.search({
}, },
}, },
field: "text", field: "text",
inference_id: "my-cohere-rerank-model", inference_id: "elastic-rerank",
inference_text: "How often does the moon hide the sun?", inference_text: "How often does the moon hide the sun?",
rank_window_size: 100, rank_window_size: 100,
min_score: 0.5, min_score: 0.5,

View File

@ -3,8 +3,8 @@
[source, js] [source, js]
---- ----
const response = await client.cluster.reroute({ const response = await client.indices.create({
metric: "none", index: "books",
}); });
console.log(response); console.log(response);
---- ----

View File

@ -3,7 +3,9 @@
[source, js] [source, js]
---- ----
const response = await client.simulate.ingest({ const response = await client.transport.request({
method: "POST",
path: "/_ingest/_simulate",
body: { body: {
docs: [ docs: [
{ {

View File

@ -0,0 +1,19 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.index({
index: "mv",
refresh: "true",
document: {
a: [2, null, 1],
},
});
console.log(response);
const response1 = await client.esql.query({
query: "FROM mv | LIMIT 1",
});
console.log(response1);
----

View File

@ -4,7 +4,7 @@
[source, js] [source, js]
---- ----
const response = await client.ingest.putPipeline({ const response = await client.ingest.putPipeline({
id: "hugging_face_embeddings", id: "hugging_face_embeddings_pipeline",
processors: [ processors: [
{ {
inference: { inference: {

View File

@ -3,8 +3,8 @@
[source, js] [source, js]
---- ----
const response = await client.cluster.getSettings({ const response = await client.indices.delete({
flat_settings: "true", index: "music",
}); });
console.log(response); console.log(response);
---- ----

View File

@ -4,7 +4,7 @@
[source, js] [source, js]
---- ----
const response = await client.ingest.putPipeline({ const response = await client.ingest.putPipeline({
id: "google_vertex_ai_embeddings", id: "google_vertex_ai_embeddings_pipeline",
processors: [ processors: [
{ {
inference: { inference: {

View File

@ -0,0 +1,33 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.security.createApiKey({
name: "john-api-key",
expiration: "1d",
role_descriptors: {
"sharepoint-online-role": {
index: [
{
names: ["sharepoint-search-application"],
privileges: ["read"],
query: {
template: {
params: {
access_control: ["john@example.co", "Engineering Members"],
},
source:
'\n {\n "bool": {\n "should": [\n {\n "bool": {\n "must_not": {\n "exists": {\n "field": "_allow_access_control"\n }\n }\n }\n },\n {\n "terms": {\n "_allow_access_control.enum": {{#toJson}}access_control{{/toJson}}\n }\n }\n ]\n }\n }\n ',
},
},
},
],
restriction: {
workflows: ["search_application_query"],
},
},
},
});
console.log(response);
----

View File

@ -5,7 +5,7 @@
---- ----
const response = await client.ingest.putPipeline({ const response = await client.ingest.putPipeline({
id: "geoip", id: "geoip",
description: "Add geoip info", description: "Add ip geolocation info",
processors: [ processors: [
{ {
geoip: { geoip: {

View File

@ -5,10 +5,16 @@
---- ----
const response = await client.indices.create({ const response = await client.indices.create({
index: "idx", index: "idx",
mappings: { settings: {
_source: { index: {
mode: "synthetic", mapping: {
source: {
mode: "synthetic",
},
},
}, },
},
mappings: {
properties: { properties: {
card: { card: {
type: "wildcard", type: "wildcard",

View File

@ -3,8 +3,8 @@
[source, js] [source, js]
---- ----
const response = await client.indices.unfreeze({ const response = await client.indices.rollover({
index: "my-index-000001", alias: "datastream",
}); });
console.log(response); console.log(response);
---- ----

View File

@ -0,0 +1,67 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.indices.create({
index: "my-rank-vectors-bit",
mappings: {
properties: {
my_vector: {
type: "rank_vectors",
element_type: "bit",
},
},
},
});
console.log(response);
const response1 = await client.bulk({
index: "my-rank-vectors-bit",
refresh: "true",
operations: [
{
index: {
_id: "1",
},
},
{
my_vector: [127, -127, 0, 1, 42],
},
{
index: {
_id: "2",
},
},
{
my_vector: "8100012a7f",
},
],
});
console.log(response1);
const response2 = await client.search({
index: "my-rank-vectors-bit",
query: {
script_score: {
query: {
match_all: {},
},
script: {
source: "maxSimDotProduct(params.query_vector, 'my_vector')",
params: {
query_vector: [
[
0.35, 0.77, 0.95, 0.15, 0.11, 0.08, 0.58, 0.06, 0.44, 0.52, 0.21,
0.62, 0.65, 0.16, 0.64, 0.39, 0.93, 0.06, 0.93, 0.31, 0.92, 0,
0.66, 0.86, 0.92, 0.03, 0.81, 0.31, 0.2, 0.92, 0.95, 0.64, 0.19,
0.26, 0.77, 0.64, 0.78, 0.32, 0.97, 0.84,
],
],
},
},
},
},
});
console.log(response2);
----

View File

@ -10,7 +10,7 @@ const response = await client.search({
"date.day_of_week": { "date.day_of_week": {
type: "keyword", type: "keyword",
script: script:
"emit(doc['date'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))", "emit(doc['date'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH))",
}, },
}, },
aggs: { aggs: {

View File

@ -1,28 +0,0 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.esql.query({
format: "txt",
query:
"\n FROM library\n | SORT page_count DESC\n | KEEP name, author\n | LOOKUP era ON author\n | LIMIT 5\n ",
tables: {
era: {
author: {
keyword: [
"Frank Herbert",
"Peter F. Hamilton",
"Vernor Vinge",
"Alastair Reynolds",
"James S.A. Corey",
],
},
era: {
keyword: ["The New Wave", "Diamond", "Diamond", "Diamond", "Hadron"],
},
},
},
});
console.log(response);
----

View File

@ -11,7 +11,7 @@ const response = await client.reindex({
}, },
dest: { dest: {
index: "azure-ai-studio-embeddings", index: "azure-ai-studio-embeddings",
pipeline: "azure_ai_studio_embeddings", pipeline: "azure_ai_studio_embeddings_pipeline",
}, },
}); });
console.log(response); console.log(response);

View File

@ -3,7 +3,9 @@
[source, js] [source, js]
---- ----
const response = await client.security.oidcLogout({ const response = await client.transport.request({
method: "POST",
path: "/_security/oidc/logout",
body: { body: {
token: token:
"dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==", "dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==",

View File

@ -0,0 +1,26 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "my-rank-vectors-float",
query: {
script_score: {
query: {
match_all: {},
},
script: {
source: "maxSimDotProduct(params.query_vector, 'my_vector')",
params: {
query_vector: [
[0.5, 10, 6],
[-0.5, 10, 10],
],
},
},
},
},
});
console.log(response);
----

View File

@ -0,0 +1,35 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.ingest.putPipeline({
id: "attachment",
description: "Extract attachment information including original binary",
processors: [
{
attachment: {
field: "data",
remove_binary: false,
},
},
],
});
console.log(response);
const response1 = await client.index({
index: "my-index-000001",
id: "my_id",
pipeline: "attachment",
document: {
data: "e1xydGYxXGFuc2kNCkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0DQpccGFyIH0=",
},
});
console.log(response1);
const response2 = await client.get({
index: "my-index-000001",
id: "my_id",
});
console.log(response2);
----

View File

@ -3,10 +3,12 @@
[source, js] [source, js]
---- ----
const response = await client.esql.asyncQueryGet({ const response = await client.transport.request({
id: "FmNJRUZ1YWZCU3dHY1BIOUhaenVSRkEaaXFlZ3h4c1RTWFNocDdnY2FSaERnUTozNDE=", method: "GET",
wait_for_completion_timeout: "30s", path: "/_query/async/FmNJRUZ1YWZCU3dHY1BIOUhaenVSRkEaaXFlZ3h4c1RTWFNocDdnY2FSaERnUTozNDE&#x3D;",
body: null, querystring: {
wait_for_completion_timeout: "30s",
},
}); });
console.log(response); console.log(response);
---- ----

View File

@ -1,16 +0,0 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.cluster.putSettings({
persistent: {
"cluster.indices.close.enable": false,
"indices.recovery.max_bytes_per_sec": "50mb",
},
transient: {
"*": null,
},
});
console.log(response);
----

View File

@ -0,0 +1,77 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.indices.create({
index: "my-index-000001",
mappings: {
properties: {
attributes: {
type: "passthrough",
priority: 10,
properties: {
id: {
type: "keyword",
},
},
},
},
},
});
console.log(response);
const response1 = await client.index({
index: "my-index-000001",
id: 1,
document: {
attributes: {
id: "foo",
zone: 10,
},
},
});
console.log(response1);
const response2 = await client.search({
index: "my-index-000001",
query: {
bool: {
must: [
{
match: {
id: "foo",
},
},
{
match: {
zone: 10,
},
},
],
},
},
});
console.log(response2);
const response3 = await client.search({
index: "my-index-000001",
query: {
bool: {
must: [
{
match: {
"attributes.id": "foo",
},
},
{
match: {
"attributes.zone": 10,
},
},
],
},
},
});
console.log(response3);
----

View File

@ -0,0 +1,28 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.indices.create({
index: "my-explicit-mappings-books",
mappings: {
dynamic: false,
properties: {
name: {
type: "text",
},
author: {
type: "text",
},
release_date: {
type: "date",
format: "yyyy-MM-dd",
},
page_count: {
type: "integer",
},
},
},
});
console.log(response);
----

View File

@ -0,0 +1,25 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.index({
index: "idx_keep",
id: 1,
document: {
path: {
to: [
{
foo: [3, 2, 1],
},
{
foo: [30, 20, 10],
},
],
bar: "baz",
},
ids: [200, 100, 300, 100],
},
});
console.log(response);
----

View File

@ -0,0 +1,43 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "my-index-000001",
retriever: {
rule: {
match_criteria: {
query_string: "puggles",
user_country: "us",
},
ruleset_ids: ["my-ruleset"],
retriever: {
rrf: {
retrievers: [
{
standard: {
query: {
query_string: {
query: "pugs",
},
},
},
},
{
standard: {
query: {
query_string: {
query: "puggles",
},
},
},
},
],
},
},
},
},
});
console.log(response);
----

View File

@ -0,0 +1,23 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.indices.create({
index: "test-index",
mappings: {
properties: {
source_field: {
type: "text",
fields: {
infer_field: {
type: "semantic_text",
inference_id: ".elser-2-elasticsearch",
},
},
},
},
},
});
console.log(response);
----

View File

@ -0,0 +1,23 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.inference.put({
task_type: "rerank",
inference_id: "my-elastic-rerank",
inference_config: {
service: "elasticsearch",
service_settings: {
model_id: ".rerank-v1",
num_threads: 1,
adaptive_allocations: {
enabled: true,
min_number_of_allocations: 1,
max_number_of_allocations: 4,
},
},
},
});
console.log(response);
----

View File

@ -4,7 +4,7 @@
[source, js] [source, js]
---- ----
const response = await client.ingest.putPipeline({ const response = await client.ingest.putPipeline({
id: "azure_ai_studio_embeddings", id: "azure_ai_studio_embeddings_pipeline",
processors: [ processors: [
{ {
inference: { inference: {

View File

@ -14,6 +14,7 @@ const response = await client.indices.putSettings({
"index.search.slowlog.threshold.fetch.info": "800ms", "index.search.slowlog.threshold.fetch.info": "800ms",
"index.search.slowlog.threshold.fetch.debug": "500ms", "index.search.slowlog.threshold.fetch.debug": "500ms",
"index.search.slowlog.threshold.fetch.trace": "200ms", "index.search.slowlog.threshold.fetch.trace": "200ms",
"index.search.slowlog.include.user": true,
}, },
}); });
console.log(response); console.log(response);

View File

@ -5,7 +5,7 @@
---- ----
const response = await client.ingest.putPipeline({ const response = await client.ingest.putPipeline({
id: "geoip", id: "geoip",
description: "Add geoip info", description: "Add ip geolocation info",
processors: [ processors: [
{ {
geoip: { geoip: {

View File

@ -0,0 +1,52 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.indices.create({
index: "my-index-bit-vectors",
mappings: {
properties: {
my_dense_vector: {
type: "dense_vector",
index: false,
element_type: "bit",
dims: 40,
},
},
},
});
console.log(response);
const response1 = await client.index({
index: "my-index-bit-vectors",
id: 1,
document: {
my_dense_vector: [8, 5, -15, 1, -7],
},
});
console.log(response1);
const response2 = await client.index({
index: "my-index-bit-vectors",
id: 2,
document: {
my_dense_vector: [-1, 115, -3, 4, -128],
},
});
console.log(response2);
const response3 = await client.index({
index: "my-index-bit-vectors",
id: 3,
document: {
my_dense_vector: [2, 18, -5, 0, -124],
},
});
console.log(response3);
const response4 = await client.indices.refresh({
index: "my-index-bit-vectors",
});
console.log(response4);
----

View File

@ -11,7 +11,7 @@ const response = await client.reindex({
}, },
dest: { dest: {
index: "openai-embeddings", index: "openai-embeddings",
pipeline: "openai_embeddings", pipeline: "openai_embeddings_pipeline",
}, },
}); });
console.log(response); console.log(response);

View File

@ -0,0 +1,67 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "movies",
size: 10,
retriever: {
rescorer: {
rescore: {
query: {
window_size: 50,
rescore_query: {
script_score: {
script: {
source:
"cosineSimilarity(params.queryVector, 'product-vector_final_stage') + 1.0",
params: {
queryVector: [-0.5, 90, -10, 14.8, -156],
},
},
},
},
},
},
retriever: {
rrf: {
rank_window_size: 100,
retrievers: [
{
standard: {
query: {
sparse_vector: {
field: "plot_embedding",
inference_id: "my-elser-model",
query: "films that explore psychological depths",
},
},
},
},
{
standard: {
query: {
multi_match: {
query: "crime",
fields: ["plot", "title"],
},
},
},
},
{
knn: {
field: "vector",
query_vector: [10, 22, 77],
k: 10,
num_candidates: 10,
},
},
],
},
},
},
},
});
console.log(response);
----

View File

@ -1,23 +0,0 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.bulk({
index: "test-index",
operations: [
{
update: {
_id: "1",
},
},
{
doc: {
infer_field: "updated inference field",
source_field: "updated source field",
},
},
],
});
console.log(response);
----

View File

@ -0,0 +1,8 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.nodes.hotThreads();
console.log(response);
----

View File

@ -11,7 +11,7 @@ const response = await client.reindex({
}, },
dest: { dest: {
index: "amazon-bedrock-embeddings", index: "amazon-bedrock-embeddings",
pipeline: "amazon_bedrock_embeddings", pipeline: "amazon_bedrock_embeddings_pipeline",
}, },
}); });
console.log(response); console.log(response);

View File

@ -29,6 +29,7 @@ const response = await client.indices.create({
"arabic_normalization", "arabic_normalization",
"persian_normalization", "persian_normalization",
"persian_stop", "persian_stop",
"persian_stem",
], ],
}, },
}, },

View File

@ -6,15 +6,8 @@
const response = await client.indices.updateAliases({ const response = await client.indices.updateAliases({
actions: [ actions: [
{ {
remove: { remove_index: {
index: "my-index-000001", index: "my-index-2099.05.06-000001",
alias: "my-index",
},
},
{
add: {
index: "my-index-000002",
alias: "my-index",
}, },
}, },
], ],

View File

@ -3,7 +3,9 @@
[source, js] [source, js]
---- ----
const response = await client.esql.asyncQuery({ const response = await client.transport.request({
method: "POST",
path: "/_query/async",
body: { body: {
query: query:
"\n FROM library\n | EVAL year = DATE_TRUNC(1 YEARS, release_date)\n | STATS MAX(page_count) BY year\n | SORT year\n | LIMIT 5\n ", "\n FROM library\n | EVAL year = DATE_TRUNC(1 YEARS, release_date)\n | STATS MAX(page_count) BY year\n | SORT year\n | LIMIT 5\n ",

View File

@ -0,0 +1,18 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "kibana_sample_data_ecommerce",
size: 0,
aggs: {
order_stats: {
stats: {
field: "taxful_total_price",
},
},
},
});
console.log(response);
----

View File

@ -3,9 +3,9 @@
[source, js] [source, js]
---- ----
const response = await client.esql.asyncQueryGet({ const response = await client.transport.request({
id: "FkpMRkJGS1gzVDRlM3g4ZzMyRGlLbkEaTXlJZHdNT09TU2VTZVBoNDM3cFZMUToxMDM=", method: "GET",
body: null, path: "/_query/async/FkpMRkJGS1gzVDRlM3g4ZzMyRGlLbkEaTXlJZHdNT09TU2VTZVBoNDM3cFZMUToxMDM&#x3D;",
}); });
console.log(response); console.log(response);
---- ----

View File

@ -0,0 +1,16 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.index({
index: "amazon-reviews",
id: 1,
document: {
review_text:
"This product is lifechanging! I'm telling all my friends about it.",
review_vector: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8],
},
});
console.log(response);
----

View File

@ -0,0 +1,18 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.indices.create({
index: "jinaai-index",
mappings: {
properties: {
content: {
type: "semantic_text",
inference_id: "jinaai-embeddings",
},
},
},
});
console.log(response);
----

View File

@ -0,0 +1,18 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "restaurants",
retriever: {
knn: {
field: "vector",
query_vector: [10, 22, 77],
k: 10,
num_candidates: 10,
},
},
});
console.log(response);
----

View File

@ -4,15 +4,16 @@
[source, js] [source, js]
---- ----
const response = await client.search({ const response = await client.search({
index: "test-index", index: "my-index-bit-vectors",
query: { query: {
nested: { script_score: {
path: "inference_field.inference.chunks",
query: { query: {
sparse_vector: { match_all: {},
field: "inference_field.inference.chunks.embeddings", },
inference_id: "my-inference-id", script: {
query: "mountain lake", source: "dotProduct(params.query_vector, 'my_dense_vector')",
params: {
query_vector: [8, 5, -15, 1, -7],
}, },
}, },
}, },

View File

@ -0,0 +1,47 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.transport.request({
method: "POST",
path: "/_inference/chat_completion/openai-completion/_stream",
body: {
messages: [
{
role: "user",
content: [
{
type: "text",
text: "What's the price of a scarf?",
},
],
},
],
tools: [
{
type: "function",
function: {
name: "get_current_price",
description: "Get the current price of a item",
parameters: {
type: "object",
properties: {
item: {
id: "123",
},
},
},
},
},
],
tool_choice: {
type: "function",
function: {
name: "get_current_price",
},
},
},
});
console.log(response);
----

View File

@ -10,7 +10,8 @@ const response = await client.inference.put({
service: "openai", service: "openai",
service_settings: { service_settings: {
api_key: "<api_key>", api_key: "<api_key>",
model_id: "text-embedding-ada-002", model_id: "text-embedding-3-small",
dimensions: 128,
}, },
}, },
}); });

View File

@ -0,0 +1,42 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.index({
index: "my-index-000001",
id: 1,
refresh: "true",
document: {
text: "quick brown fox",
},
});
console.log(response);
const response1 = await client.index({
index: "my-index-000001",
id: 2,
refresh: "true",
document: {
text: "quick fox",
},
});
console.log(response1);
const response2 = await client.search({
index: "my-index-000001",
query: {
script_score: {
query: {
match: {
text: "quick brown fox",
},
},
script: {
source: "_termStats.termFreq().getAverage()",
},
},
},
});
console.log(response2);
----

View File

@ -10,7 +10,7 @@ const response = await client.search({
type: "keyword", type: "keyword",
script: { script: {
source: source:
"emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))", "emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH))",
}, },
}, },
}, },

View File

@ -0,0 +1,14 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.transport.request({
method: "POST",
path: "/_inference/completion/openai-completion/_stream",
body: {
input: "What is Elastic?",
},
});
console.log(response);
----

View File

@ -0,0 +1,38 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.updateByQuery({
index: "INDEX_NAME",
conflicts: "proceed",
query: {
bool: {
filter: [
{
match: {
object_type: "drive_item",
},
},
{
exists: {
field: "file",
},
},
{
range: {
lastModifiedDateTime: {
lte: "now-180d",
},
},
},
],
},
},
script: {
source: "ctx._source.body = ''",
lang: "painless",
},
});
console.log(response);
----

View File

@ -4,7 +4,7 @@
[source, js] [source, js]
---- ----
const response = await client.ingest.putPipeline({ const response = await client.ingest.putPipeline({
id: "openai_embeddings", id: "openai_embeddings_pipeline",
processors: [ processors: [
{ {
inference: { inference: {

View File

@ -0,0 +1,55 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.search({
index: "cooking_blog",
query: {
bool: {
must: [
{
term: {
tags: "vegetarian",
},
},
{
range: {
rating: {
gte: 4.5,
},
},
},
],
should: [
{
term: {
category: "Main Course",
},
},
{
multi_match: {
query: "curry spicy",
fields: ["title^2", "description"],
},
},
{
range: {
date: {
gte: "now-1M/d",
},
},
},
],
must_not: [
{
term: {
"category.keyword": "Dessert",
},
},
],
},
},
});
console.log(response);
----

View File

@ -11,7 +11,7 @@ const response = await client.reindex({
}, },
dest: { dest: {
index: "elser-embeddings", index: "elser-embeddings",
pipeline: "elser_embeddings", pipeline: "elser_embeddings_pipeline",
}, },
}); });
console.log(response); console.log(response);

View File

@ -0,0 +1,11 @@
// This file is autogenerated, DO NOT EDIT
// Use `node scripts/generate-docs-examples.js` to generate the docs examples
[source, js]
----
const response = await client.nodes.stats({
human: "true",
filter_path: "nodes.*.indexing_pressure",
});
console.log(response);
----

Some files were not shown because too many files have changed in this diff Show More