UNPKG

nolr

Version:

Solr Node Client with ES6 Support

198 lines (152 loc) 3.76 kB
# nolr This project is a fork of the Simple Solr Node Client Project. [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ## Install ``` npm install nolr ``` ### Create Client ```js // 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 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 ```js // 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 ```js // 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 ```js // 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: ```js const result = solrClient.search(query) .then(function(result) { console.log('Response:', result.response); }) .catch(function(err) { console.error(err); }); ``` ## Test & Coverage & Docs ``` gulp ```