README
solr-hyperquest-client
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
- raw query get, post, put, delete
- Query builder
- extendable
Solr support
- Add Data
- Query
- CoreAdmin API
- Schema API
- Index Replication
- Collections API
- SystemInformationRequestHandlers
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
- add more tests
- write documentation
Contributing
- Fork it ( https://github.com/sajov/solr-hyperquest-client/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request