solr-hyperquest-client

solr client on hyperquest

Usage no npm install needed!

<script type="module">
  import solrHyperquestClient from 'https://cdn.skypack.dev/solr-hyperquest-client';
</script>

README

solr-hyperquest-client

Build Status Coverage Status Dependency Status

NPM

Build and used for a real world application (under heavy development). This client is also used for an up coming waterline adapter sails-solr.

Features

Solr support

Installation

npm install solr-hyperquest-client --save

Solr kick start

node_modules/solr-hyperquest-client/bin/install-solr.sh

Usage

// Load dependency
var Solr = require('solr-hyperquest-client');

// Create a client
var client = new Solr.Client({
    host: 'localhost',
    port: '8983',
    instance: 'solr',
    core: 'schemaless'
});

// Create a solr core (optional you take complete control managing solr)
client.coreCreate({
        action: 'CREATE',
        name: 'schemaless',
        loadOnStartup: true,
        instanceDir: 'schemaless',
        configSet: 'data_driven_schema_configs',
        config: 'solrconfig.xml',
        schema: 'schema.xml',
        dataDir: 'data'
    },
    function(err, data) {
        if (err) {
            console.log(err);
        } else {
            console.log('Solr response:', response);
        }
    });

// Add a new document
client.add({name: 'foo'},function(err,response){
   if(err){
      console.log(err);
   }else{
      console.log('Solr response:', response);
   }
});

// Get the new document
client.find('q=foo',function(err, response) {
   if(err){
      console.log(err);
   }else{
      console.log('Solr response:', response);
   }
});

Query builder (ORM)

inspired by waterline

var Solr = require('solr-hyperquest-client');
var Query = Solr.Query;

var client = new Solr.Client({
    host: 'localhost',
    port: '8983',
    instance: 'solr',
    core: 'schemaless'
});

var query = new Query({
    where: {
        name: 'foo'
    },
    skip: 0,
    limit: 10,
    sort: 'name DESC',
    select: ['name']
});

client.find(query.queryUri, function(err, response) {
   if(err){
      console.log(err);
   }else{
      console.log('Solr response:', response);
   }
});

Documentation

coming soon...

Testing

make test

TODO's

  1. add more tests
  2. write documentation

Contributing

  1. Fork it ( https://github.com/sajov/solr-hyperquest-client/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request