NOTE: You are looking at documentation for an older release. For the latest information, see the current release documentation.
Typescript
editTypescript
editThe client offers a first-class support for TypeScript, since it ships the type definitions for every exposed API.
If you are using TypeScript you will be required to use snake_case style to define the API parameters instead of camelCase.
'use strict' import { Client, ApiResponse, RequestParams } from '@elastic/elasticsearch' const client = new Client({ node: 'http://localhost:9200' }) async function run (): void { // Let's start by indexing some data const doc1: RequestParams.Index = { index: 'game-of-thrones', body: { character: 'Ned Stark', quote: 'Winter is coming.' } } await client.index(doc1) const doc2: RequestParams.Index = { index: 'game-of-thrones', body: { character: 'Daenerys Targaryen', quote: 'I am the blood of the dragon.' } } await client.index(doc2) const doc3: RequestParams.Index = { index: 'game-of-thrones', // here we are forcing an index refresh, // otherwise we will not get any result // in the consequent search refresh: true, body: { character: 'Tyrion Lannister', quote: 'A mind needs books like a sword needs a whetstone.' } } await client.index(doc3) // Let's search! const params: RequestParams.Search = { index: 'game-of-thrones', body: { query: { match: { quote: 'winter' } } } } client .search(params) .then((result: ApiResponse) => { console.log(result.body.hits.hits) }) .catch((err: Error) => { console.log(err) }) } run()