Skip to content

tombburnell/node-elasticsearch-cacheable

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-elasticsearch-cacheable

Modifies the official elasticsearch-js client to add caching in redis. In my tests its been anywhere from 12% to 4% of a response from elasticsearch.

##Getting Started Install:

npm install elasticsearch-cacheable

Create an elasticsearch client, mutate it with this module and use away:

var esClient = require('elasticsearch').Client();
require('./elasticsearch-cacheable')(esClient);

esClient.search({
  ...
}, function (err, results) {
  ...
});

##Options When mutating, there is a default config as such:

{
  redisPort: 6379,
  redisHost: '127.0.0.1',
  redisDatabase: 0,
  cacheTime: 5 //seconds
}

Which is changed like so:

var esClient = require('elasticsearch').Client();
require('./elasticsearch-cacheable')(esClient, {
  redisHost: '10.10.10.10',
  cacheTime: 3
});

Also any time you wish to bust the cache and force a search against elasticsearch, just add noCache: true to the search parameters:

esClient.search({
  index: '*',
  type: 'foo',
  noCache: true,
  body: {
    "query": {
      ...
  }
}, function (err, results) {
  ...
}

About

Cache elasticsearch search queries in redis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%