nolr

    1.0.2 • Public • Published

    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

    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
    

    Install

    npm i nolr

    DownloadsWeekly Downloads

    10

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    3.99 MB

    Total Files

    57

    Last publish

    Collaborators

    • seech