- Node.js: http://github.com/joyent/node
- Solr: http://lucene.apache.org/solr/
Run tests with npm test. Edit "test/common.js" if you don't have Solr running at 127.0.0.1:8983.
See tests for usage. Here's a quick example:
varsolr=require('solr');varclient=solr.createClient();vardoc1={id: '1',title_t: 'Foo bar',text_t: 'Fizz buzz frizzle'};vardoc2={id: '2',title_t: 'Far boo',text_t: 'Wuzz fizz drizzle'};client.add(doc1,function(err){if(err)throwerr;console.log('First document added');client.add(doc2,function(err){if(err)throwerr;console.log('Second document added');client.commit(function(err){varquery='text_t:fizz'client.query(query,function(err,response){if(err)throwerr;varresponseObj=JSON.parse(response);console.log('A search for "'+query+'" returned '+responseObj.response.numFound+' documents.');console.log('First doc title: '+responseObj.response.docs[0].title_t);console.log('Second doc title: '+responseObj.response.docs[1].title_t);client.del(null,query,function(err,response){if(err)throwerr;console.log('Deleted all docs matching query "'+query+'"');client.commit()});});});});});Solr add/replace documents supports optional parameters.
vardoc1={id: '1',title_t: {params: {boost: '2.0'},value: 'Foo bar',},text_t: 'Fizz buzz frizzle'};