🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

nolr

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nolr

Solr Node Client with ES6 Support

1.0.2
latest
npm
Version published
Weekly downloads
48
380%
Maintainers
1
Weekly downloads
 
Created
Source

nolr

This project is a fork of the Simple Solr Node Client Project.

License: MIT

Install

npm install nolr

Create Client

// Require module
const nolr = require('nolr');

// Create client
const client = new nolr({
    host: '127.0.0.1',
    port: '8983',
    core: 'test',
    protocol: 'http'
});

// Set Debug Level
const client = new nolr({
    host: '127.0.0.1',
    port: '8983',
    core: 'test',
    protocol: 'http',
    debugLevel: 'ERROR' // log4js debug level paramter
});

Search can be executed with a simple text query or an object query.

Text

Text queries are similar to what one would find on the SOLR Core UI, EX:

From the URL: http://localhost:8080/solr/products/select?q=*%3A*&wt=json

The Query would be:

*:*&wt=json

NOTE: url decoded ':' from %3A.

Object

Object based queries can be simple or complex using chaining. Each method of the Query object returns an instance of itself.

Examples:

Simple:

client.query().q({text:'test', title:'test'});

Complex and chained:

client.query()
    .q({text:'test', title:'test'})
    .addParams({
        wt: 'json',
        indent: true
    })
    .start(1)
    .rows(1)
;

Query Examples

// Create query
let strQuery = client.query().q('text:test');
let objQuery = client.query().q({text:'test', title:'test'});
let myStrQuery = 'q=text:test&wt=json';

// Search documents using strQuery
client.search(strQuery, function (err, result) {
   if (err) {
      console.log(err);
      return;
   }
   console.log('Response:', result.response);
});

// Search documents using objQuery
client.search(objQuery, function (err, result) {
   if (err) {
      console.log(err);
      return;
   }
   console.log('Response:', result.response);
});

// Search documents using myStrQuery
client.search(myStrQuery, function (err, result) {
   if (err) {
      console.log(err);
      return;
   }
   console.log('Response:', result.response);
});

Update

// JSON Data
let data = {
    text: 'test',
    title: 'test'
};

// Update one document to Solr server
client.updateOne(data, function(err, result) {
   if (err) {
      console.log(err);
      return;
   }
   console.log('Response:', result.responseHeader);
});

// JSON Array Data, takes both array or JSON Lines
let data = [{text: 'test1', title: 'test1'},
            {text: 'test2', title: 'test2'},
            {text: 'test3', title: 'test3'}];

// Update one document to Solr server
client.updateMany(data, function(err, result) {
   if (err) {
      console.log(err);
      return;
   }
   console.log('Response:', result.responseHeader);
});

Delete

// Delete Query
let strQuery = 'id:testid'
let objQuery = {id:'testid'}

// Delete document using strQuery
client.delete(strQuery, function(err, result) {
   if (err) {
      console.log(err);
      return;
   }
   console.log('Response:', result.responseHeader);
});

// Delete document using objQuery
client.delete(objQuery, function(err, result) {
   if (err) {
      console.log(err);
      return;
   }
   console.log('Response:', result.responseHeader);
});

Promise support

Skip the callback to get a promise back. ie:

const result = solrClient.search(query)
    .then(function(result) {
      console.log('Response:', result.response);
    })
    .catch(function(err) {
      console.error(err);
    });

Test & Coverage & Docs

gulp

Keywords

solr

FAQs

Package last updated on 05 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts