elasticsearch

Legacy Elasticsearch client library for Node.js and the browser

Showing:

Popularity

Downloads/wk

299K

GitHub Stars

49

Maintenance

Last Commit

8mos ago

Contributors

94

Package

Dependencies

3

Size (min+gzip)

74.3KB

License

Apache-2.0

Type Definitions

Tree-Shakeable

No?

Reviews

Average Rating

4.5/58
Read All Reviews
CoryKleiser
preveenraj
happycontributer
vishnucramesh
zek0faws

Top Feedback

4Easy to Use
3Poor Documentation
2Performant
1Great Documentation
1Highly Customizable
1Bleeding Edge

Readme

elasticsearch.js 16.7.2


We have released the new JavaScript client!

In the next months this client will be deprecated, so you should start migrating your codebase as soon as possible.
We have built a migration guide that will help you move to the new client quickly, and if you have questions or need help, please open an issue.


The official low-level Elasticsearch client for Node.js and the browser.

Coverage Status Dependencies up to date

Features

  • One-to-one mapping with REST API and the other official clients
  • Generalized, pluggable architecture. See Extending Core Components
  • Configurable, automatic discovery of cluster nodes
  • Persistent, Keep-Alive connections
  • Load balancing (with pluggable selection strategy) across all available nodes.

Use in Node.js

npm install elasticsearch

NPM Stats

Use in the Browser

Check out the Browser Builds doc page for help downloading and setting up the client for use in the browser.

Docs

Questions?

You can probably find help in #kibana on freenode.

Supported Elasticsearch Versions

Elasticsearch.js provides support for, and is regularly tested against, Elasticsearch releases 0.90.12 and greater. We also test against the latest changes in several branches in the Elasticsearch repository. To tell the client which version of Elasticsearch you are using, and therefore the API it should provide, set the apiVersion config param. More info

Examples

Create a client instance

var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
  host: 'localhost:9200',
  log: 'trace',
  apiVersion: '7.2', // use the same version of your Elasticsearch instance
});

Send a HEAD request to / and allow up to 1 second for it to complete.

client.ping({
  // ping usually has a 3000ms timeout
  requestTimeout: 1000
}, function (error) {
  if (error) {
    console.trace('elasticsearch cluster is down!');
  } else {
    console.log('All is well');
  }
});

Skip the callback to get a promise back

try {
  const response = await client.search({
    q: 'pants'
  });
  console.log(response.hits.hits)
} catch (error) {
  console.trace(error.message)
}

Find tweets that have "elasticsearch" in their body field

const response = await client.search({
  index: 'twitter',
  type: 'tweets',
  body: {
    query: {
      match: {
        body: 'elasticsearch'
      }
    }
  }
})

for (const tweet of response.hits.hits) {
  console.log('tweet:', tweet);
}

More examples and detailed information about each method are available here

License

This software is licensed under the Apache 2 license, quoted below.

Copyright (c) 2014 Elasticsearch <http://www.elasticsearch.org>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Rate & Review

Great Documentation1
Easy to Use4
Performant2
Highly Customizable1
Bleeding Edge1
Responsive Maintainers0
Poor Documentation3
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
Cory KleiserMonument, CO33 Ratings23 Reviews
Full Stack Software Engineer
September 15, 2020
Poor Documentation
Performant

Elasticsearch is a good search solution but it is not very customizable. That means if there is information that is conditional shown based on who requests it, it's pretty much useless. In the past I've been relegated to just removing conditional information from the index. That's not ideal. Still a good search solution if you don't have that use case.


2
liorgrossman
CommandLineDesign
Preveen RajKochi, Kerala, India58 Ratings49 Reviews
Software Engineer @bigbinary
4 months ago
Great Documentation
Easy to Use

When I started working on elasticsearch for my professional project, it felt a little hard to learn up. But, eventually I got the gist of it and felt the power of its querying. Even complex queries can be done in within very small span of time.


0
happycontributer16 Ratings130 Reviews
10 months ago
Easy to Use

Used it in my last organisation to implement elasticsearch in the application, its a bit dry here and there and a very vast ocean of things going on under the hood, i ended up breaking the app in production during the first try and then i understood the mistakes and corrected them. It easy to use anyway.


1
aswanikv
vishnucrameshRome, Italy45 Ratings32 Reviews
#LivetoCode
October 24, 2020
Poor Documentation
Easy to Use
Performant
Highly Customizable
Bleeding Edge

Its one of the best search engines, played with it a lot to implement lots of difficult queries. I really exploited the lucene query search feature. Really awesome, it was a real fun to play with it. Documentation can be little improved, different version difference in query will make a bit confusion.


0
Christopher MAUGIS/France/Paris/Zek0Faws28 Ratings33 Reviews
I like new stuff.
September 16, 2020

Elasticsearch is the best tool for finding items in your indexes. This plugin allows you to search using JS. With react, this is the best combination I have ever used. I recommand it.


0

Tutorials

No tutorials found
Add a tutorial