Socket
Socket
Sign inDemoInstall

nolr

Package Overview
Dependencies
19
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    nolr

Solr Node Client with ES6 Support


Version published
Weekly downloads
21
increased by200%
Maintainers
1
Created
Weekly downloads
 

Readme

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

FAQs

Last updated on 05 Aug 2018

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc