Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
uko-solr-client
Advanced tools
Readme
This module is distributed using npm which comes bundled with node:
npm install --save solr-client
Noticeable change: You can now pass a solrVersion to the Client initialization so it will activate features that are only supported by your version or higher. Be sure to check the documentation
var client = solr.createClient({ bigint : true})
or directly on the client instance client.options.bigint = true
.See the website at http://lbdremy.github.com/solr-node-client/.
// Load dependency
var solr = require('solr-client');
// Create a client
var client = solr.createClient();
// Add a new document
client.add({ id : 12, title_t : 'Hello' },function(err,obj){
if(err){
console.log(err);
}else{
console.log('Solr response:', obj);
}
});
No breaking change has been introduced to this release. However, to take advantage of facet.pivot and facet.pivot.mincount feature, you'll need to pass a solrVersion parameter to the createClient() method.
Example:
// Will activate features specific to Solr4.0 and above (like facet.pivot and facet.pivot.mincount)
var client = solr.createClient({
solrVersion: '4.0'
});
A feature allowing to support large queries by switching to POST when the query size reaches the threshold was introduced. To not become a breaking change, it is by default turned OFF.
To activate it, pass the property get_max_request_entity_size
to the createClient with the threshold in bytes. Minimum is 1.
Example:
// Will switch to POST as soon as the query size reaches 1000 bytes (limit in servers is usually 2048 or 8192)
// You can set it to 1 so every request will always use POST.
var client = solr.createClient({
get_max_request_entity_size: 1000
});
The only breaking change introduced in 0.5.x
is introduced in this commit 3cbc7fc6cf631f019a4626913c0a4b616092133b which remove escaping of the Solr special characters in some of the methods of the Query
class i.e in Query#rangeFilter
, Query#matchFilter
, Query#group
, Query#facet
, Query#mlt
if you were relying on this behavior just wrap the arguments you passed to those methods into the solr.escapeSpecialChars(arg)
method.
For example, for some weird reason you wanted to escape the special char *
, don't ask me ;)
var query = client.createQuery();
query.q({ '*' : '*' }).rangeFilter({ field : 'id', start : 100, end : '*'})
You still can:
var query = client.createQuery();
query.q({ '*' : '*' }).rangeFilter({ field : 'id', start : 100, end : solr.escapeSpecialChars('*')})
Post an issue if you have troubles migrating to v0.5.0.
The only breaking change introduced in 0.4.x
is about JSON serialization/deserialization of numbers too large for Javascript Number type. If you were using the Optimistic Concurreny feature available in Solr 4.x, along with RealTime Get and Atomic Updates features which use the _version_ field or *_l type fields you are affected about this change otherwise you are just fine.
If you affected in order to fix that just initialize your client with the bigint
flag set to true
:
var client = solr.createClient({ bigint : true });
or directly on the Client
instance:
client.options.bigint = true;
Post an issue if you have troubles migrating to v0.4.0.
The only breaking change introduced in v0.3.0
is about method chaining of the solr Client
.
Method chaining as simply been removed because we were actually hidding something really interesting and useful
the http.ClientRequest
instance.
So, before you could have done this:
var client = solr.createClient();
client
.search('q=hello', function(err, obj){
console.log(err, obj);
})
.search('q=world', function(err, obj){
console.log(err, obj);
});
Now it won't work, but you have now access to the http.ClientRequest
instead created by Client#search
:
var client = solr.createClient();
var request = client.search('q=hello', function(err, obj){
console.log(err, obj);
});
request.setTimeout(200, function(){
console.log('search timeout');
});
Post an issue if you have troubles migrating to v0.3.0.
npm test
Tests are executed against a running SOLR instance, so you might want to:
mocha test/*-test.js --client.core=test-node-client --client.port=8080
Before to be able to run the command below, you will need to install jscoverage available here https://github.com/visionmedia/node-jscoverage.
npm run-script test-cov
This command will generate a file named coverage.html
, use your browser to visualize it.
npm run-script report
(The MIT License)
Copyright 2011-2012 HipSnip Limited
Copyright 2013-2014 Rémy Loubradou
FAQs
A Solr client library for indexing, adding, deleting, committing, optimizing and searching documents within an Apache Solr installation (version>=3.2)
The npm package uko-solr-client receives a total of 9 weekly downloads. As such, uko-solr-client popularity was classified as not popular.
We found that uko-solr-client demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.