11
I Use This!
Very Low Activity

News

Analyzed 1 day ago. based on code collected 2 days ago.
Posted over 14 years ago by [email protected] (Mauricio Scheffer)
SolrNet is a Solr client for .NET, and I just released version 0.4.0 beta 1.Core functionality is stable. New features are unit-tested, but may not be battle-tested. Feature-frozen, no new features will be allowed between this beta and the final ... [More] release. You can of course still send in pull requests for new features, they will be included in the next release, just not in 0.4.0; and in fact there is a pending pull request implementing sharding that I have to review, work on and eventually merge. API-frozen, unless there's some critical flaw or an obvious win with a small change. Little to no documentation about new features or changes. Tests are the primary or maybe only source of usage. New featuresMoreLikeThis handler queries. TermsComponent support. ClusteringComponent support. Optionally disable quoting in SolrQueryByField. Ngroups for result grouping. Multicore support for Autofac module. Friendlier highlighting results. BugfixesFixed an intermitent bug in NHibernate integration. Fixed bug with LocalParams in date facets. Fixed pre/post delimiters for fastVectorHighlighter. Fixed exception when using SolrNet in Application_Start under IIS 7+ Breaking changesRemoved query result interfaces (ISolrQueryResults). Just replace it with SolrQueryResults in your code. Deprecated Add(IEnumerable<T>). Use AddRange() instead. Other stuffUpgraded to NHibernate 3.2 Upgraded to Autofac 2.5.2 Contributors since 0.4.0 alpha 1Radek Krahl Rich Semenick Jerry Wang Paige Cook Steven Casey Jonathan Holland James Atherton Teun Duynstee Tom Morley Emad Nashed Matej Skubic Matthew Braid Huge kudos to them all! Also thanks to Stephen Pope and Paige Cook for picking up many questions about SolrNet in the mailing list and Stackoverflow.DownloadBinaries available on Google Code as usual.If you're upgrading from 0.3.1, see also the 0.4.0 alpha 1 release notes. [Less]
Posted over 14 years ago by [email protected] (Mauricio Scheffer)
SolrNet is a Solr client for .NET, and I just released version 0.4.0 beta 1. Core functionality is stable. New features are unit-tested, but may not be battle-tested. Feature-frozen, no new features will be allowed between this beta and the final ... [More] release. You can of course still send in pull requests for new features, they will be included in the next release, just not in 0.4.0; and in fact there is a pending pull request implementing sharding that I have to review, work on and eventually merge. API-frozen, unless there's some critical flaw or an obvious win with a small change. Little to no documentation about new features or changes. Tests are the primary or maybe only source of usage. New features MoreLikeThis handler queries. TermsComponent support. ClusteringComponent support. Optionally disable quoting in SolrQueryByField. Ngroups for result grouping. Multicore support for Autofac module. Friendlier highlighting results. Bugfixes Fixed an intermitent bug in NHibernate integration. Fixed bug with LocalParams in date facets. Fixed pre/post delimiters for fastVectorHighlighter. Fixed exception when using SolrNet in Application_Start under IIS 7+ Breaking changes Removed query result interfaces (ISolrQueryResults). Just replace it with SolrQueryResults in your code. Deprecated Add(IEnumerable). Use AddRange() instead. Other stuff Upgraded to NHibernate 3.2 Upgraded to Autofac 2.5.2 Contributors since 0.4.0 alpha 1 Radek Krahl Rich Semenick Jerry Wang Paige Cook Steven Casey Jonathan Holland James Atherton Teun Duynstee Tom Morley Emad Nashed Matej Skubic Matthew Braid Huge kudos to them all! Also thanks to Stephen Pope and Paige Cook for picking up many questions about SolrNet in the mailing list and Stackoverflow.DownloadBinaries available on Google Code as usual.If you're upgrading from 0.3.1, see also the 0.4.0 alpha 1 release notes. [Less]
Posted over 14 years ago by [email protected] (Mauricio Scheffer)
SolrNet is a Solr client for .NET, and I just released version 0.4.0 beta 1.Core functionality is stable. New features are unit-tested, but may not be battle-tested. Feature-frozen, no new features will be allowed between this beta and the final ... [More] release. You can of course still send in pull requests for new features, they will be included in the next release, just not in 0.4.0; and in fact there is a pending pull request implementing sharding that I have to review, work on and eventually merge. API-frozen, unless there's some critical flaw or an obvious win with a small change. Little to no documentation about new features or changes. Tests are the primary or maybe only source of usage. New featuresMoreLikeThis handler queries. TermsComponent support. ClusteringComponent support. Optionally disable quoting in SolrQueryByField. Ngroups for result grouping. Multicore support for Autofac module. Friendlier highlighting results. BugfixesFixed an intermitent bug in NHibernate integration. Fixed bug with LocalParams in date facets. Fixed pre/post delimiters for fastVectorHighlighter. Fixed exception when using SolrNet in Application_Start under IIS 7+ Breaking changesRemoved query result interfaces (ISolrQueryResults). Just replace it with SolrQueryResults in your code. Deprecated Add(IEnumerable<T>). Use AddRange() instead. Other stuffUpgraded to NHibernate 3.2 Upgraded to Autofac 2.5.2 Contributors since 0.4.0 alpha 1Radek Krahl Rich Semenick Jerry Wang Paige Cook Steven Casey Jonathan Holland James Atherton Teun Duynstee Tom Morley Emad Nashed Matej Skubic Matthew Braid Huge kudos to them all! Also thanks to Stephen Pope and Paige Cook for picking up many questions about SolrNet in the mailing list and Stackoverflow.DownloadBinaries available on Google Code as usual.If you're upgrading from 0.3.1, see also the 0.4.0 alpha 1 release notes. [Less]
Posted almost 15 years ago by [email protected] (Mauricio Scheffer)
SolrNet is a Solr client for .NET, and I just released version 0.4.0 alpha 1. Before detailing the changes, I'd like to clarify what alpha means to me: Core functionality is stable (otherwise I wouldn't even bother releasing) New features ... [More] are unit-tested (otherwise I wouldn't even admit them into the repo), but may not be battle-tested Not feature-frozen (i.e. future alphas/betas might get new features) Not interface-frozen (I make no guarantees about breaking changes between this alpha and the final release) Little to no documentation about new features or changes. Tests are the primary or maybe only source of usage. The goal of this release is to get real-world testing and feedback on the new features and changes. New features Solr 4.0 grouping (this used to be called "field collapsing", but was completely overhauled) Solr 4.0 pivot faceting Autofac integration module Unity integration Fluent interface: added index-time document boosting Fluent interface: added easier way to set Solr URL and timeout SolrQueryByDistance (spatial search) Support for ExtractingRequestHandler (i.e. binary/proprietary document indexing, like MS Word, PDF, etc) Rollback (it was implemented but missing in ISolrOperations) CommitWithin and Overwrite parameters for document add Mixed exclusive/inclusive range queries (Solr 4.0 only) Bugfixes Fixed support for nullable enum properties with empty Solr field value. Breaking changes Breaking change for IReadOnlyMappingManager implementors: it now indexes fields by name to speed up lookup. Breaking change: SolrQueryByField now quotes '*' and '?' Minor breaking change for direct users of SolrConnection: removed constructor with IHttpWebRequestFactory parameter and made it a property. Other stuff Upgraded to Windsor 2.5.3 Upgraded to Ninject 2.2.1.0 Upgraded to NHibernate 3.1.0 Upgraded to StructureMap 2.6.2 Upgraded to .NET 3.5 Contributors I'm very happy to say that the project is getting more and more contributors all the time, and they're doing a great job! Here are the contributors to this release: Klaas Vlietstra Naz Junaid Rich Tebb emargee Andre Hazelwood Adam Kirkton Ed Devlin alukantsov Paul Bouwer Matej Skubic (Studio Pesec) Amar Raja A huge thank you to them all! Binaries available on google code. [Less]
Posted almost 15 years ago by [email protected] (Mauricio Scheffer)
SolrNet is a Solr client for .NET, and I just released version 0.4.0 alpha 1. Before detailing the changes, I'd like to clarify what alpha means to me: Core functionality is stable (otherwise I wouldn't even bother releasing) New features ... [More] are unit-tested (otherwise I wouldn't even admit them into the repo), but may not be battle-tested Not feature-frozen (i.e. future alphas/betas might get new features) Not interface-frozen (I make no guarantees about breaking changes between this alpha and the final release) Little to no documentation about new features or changes. Tests are the primary or maybe only source of usage. The goal of this release is to get real-world testing and feedback on the new features and changes. New features Solr 4.0 grouping (this used to be called "field collapsing", but was completely overhauled) Solr 4.0 pivot faceting Autofac integration module Unity integration Fluent interface: added index-time document boosting Fluent interface: added easier way to set Solr URL and timeout SolrQueryByDistance (spatial search) Support for ExtractingRequestHandler (i.e. binary/proprietary document indexing, like MS Word, PDF, etc) Rollback (it was implemented but missing in ISolrOperations) CommitWithin and Overwrite parameters for document add Mixed exclusive/inclusive range queries (Solr 4.0 only) Bugfixes Fixed support for nullable enum properties with empty Solr field value. Breaking changes Breaking change for IReadOnlyMappingManager implementors: it now indexes fields by name to speed up lookup. Breaking change: SolrQueryByField now quotes '*' and '?' Minor breaking change for direct users of SolrConnection: removed constructor with IHttpWebRequestFactory parameter and made it a property. Other stuff Upgraded to Windsor 2.5.3 Upgraded to Ninject 2.2.1.0 Upgraded to NHibernate 3.1.0 Upgraded to StructureMap 2.6.2 Upgraded to .NET 3.5 Contributors I'm very happy to say that the project is getting more and more contributors all the time, and they're doing a great job! Here are the contributors to this release: Klaas Vlietstra Naz Junaid Rich Tebb emargee Andre Hazelwood Adam Kirkton Ed Devlin alukantsov Paul Bouwer Matej Skubic (Studio Pesec) Amar Raja A huge thank you to them all! Binaries available on google code. [Less]
Posted almost 15 years ago by [email protected] (mausch)
SolrNet is a Solr client for .NET, and I just released version 0.4.0 alpha 1. Before detailing the changes, I'd like to clarify what alpha means to me: Core functionality is stable (otherwise I wouldn't even bother releasing) New features ... [More] are unit-tested (otherwise I wouldn't even admit them into the repo), but may not be battle-tested Not feature-frozen (i.e. future alphas/betas might get new features) Not interface-frozen (I make no guarantees about breaking changes between this alpha and the final release) Little to no documentation about new features or changes. Tests are the primary or maybe only source of usage. The goal of this release is to get real-world testing and feedback on the new features and changes. New features Solr 4.0 grouping (this used to be called "field collapsing", but was completely overhauled) Solr 4.0 pivot faceting Autofac integration module Unity integration Fluent interface: added index-time document boosting Fluent interface: added easier way to set Solr URL and timeout SolrQueryByDistance (spatial search) Support for ExtractingRequestHandler (i.e. binary/proprietary document indexing, like MS Word, PDF, etc) Rollback (it was implemented but missing in ISolrOperations) CommitWithin and Overwrite parameters for document add Mixed exclusive/inclusive range queries (Solr 4.0 only) Bugfixes Fixed support for nullable enum properties with empty Solr field value. Breaking changes Breaking change for IReadOnlyMappingManager implementors: it now indexes fields by name to speed up lookup. Breaking change: SolrQueryByField now quotes '*' and '?' Minor breaking change for direct users of SolrConnection: removed constructor with IHttpWebRequestFactory parameter and made it a property. Other stuff Upgraded to Windsor 2.5.3 Upgraded to Ninject 2.2.1.0 Upgraded to NHibernate 3.1.0 Upgraded to StructureMap 2.6.2 Upgraded to .NET 3.5 Contributors I'm very happy to say that the project is getting more and more contributors all the time, and they're doing a great job! Here are the contributors to this release: Klaas Vlietstra Naz Junaid Rich Tebb emargee Andre Hazelwood Adam Kirkton Ed Devlin alukantsov Paul Bouwer Matej Skubic (Studio Pesec) Amar Raja A huge thank you to them all! Binaries available on google code. [Less]
Posted about 15 years ago by [email protected] (Mauricio Scheffer)
SolrNet is a Solr client for .NET. I just released SolrNet 0.3.1. This is a bugfix release. It's a drop-in replacement for 0.3.0, there are no breaking changes. Here's the changelog: Fixed fixed parsing of decimals with exponential notation ... [More] Fixed SolrQueryInList with empty strings Fixed facet.missing=true Added support for nullable Guid properties Fixed date faceting for Solr 3.x by ignoring 'start' element Fixed NullReferenceException with facet.missing=true Null in range queries translate to * Ignored LocalParams for facet field parameters, it generated an invalid query. Thanks to everyone who reported these bugs and offered solutions! Binaries are available on Google Code and NuGet. [Less]
Posted about 15 years ago by [email protected] (Mauricio Scheffer)
SolrNet is a Solr client for .NET. I just released SolrNet 0.3.1. This is a bugfix release. It's a drop-in replacement for 0.3.0, there are no breaking changes. Here's the changelog: Fixed fixed parsing of decimals with exponential notation ... [More] Fixed SolrQueryInList with empty strings Fixed facet.missing=true Added support for nullable Guid properties Fixed date faceting for Solr 3.x by ignoring 'start' element Fixed NullReferenceException with facet.missing=true Null in range queries translate to * Ignored LocalParams for facet field parameters, it generated an invalid query. Thanks to everyone who reported these bugs and offered solutions! Binaries are available on Google Code and NuGet. [Less]
Posted about 15 years ago by [email protected] (mausch)
SolrNet is a Solr client for .NET. I just released SolrNet 0.3.1. This is a bugfix release. It's a drop-in replacement for 0.3.0, there are no breaking changes. Here's the changelog: Fixed fixed parsing of decimals with exponential notation ... [More] Fixed SolrQueryInList with empty strings Fixed facet.missing=true Added support for nullable Guid properties Fixed date faceting for Solr 3.x by ignoring 'start' element Fixed NullReferenceException with facet.missing=true Null in range queries translate to * Ignored LocalParams for facet field parameters, it generated an invalid query. Thanks to everyone who reported these bugs and offered solutions! Binaries are available on Google Code and NuGet. [Less]
Posted over 15 years ago by [email protected] (Mauricio Scheffer)
One of the most voted enhancement requests for SolrNet (an Apache Solr client for .NET) right now is to add support for POSTing when querying. Let me explain: queries are serialized by SolrNet and sent to Solr via HTTP. Normally, queries are issued ... [More] with a GET request and the query itself goes in the query string part of the URL. A simple query URL might look like this: http://localhost:8983/solr/select?q=id:123 . The problem arises when the query is too long to fit in the query string. Even though the HTTP protocol does not place any a priori limit on the length of a URI, most (all?) servers do, for performance and security reasons. Here's a little program that reproduces this issue: internal class Program { private const string serverURL = "http://localhost:8983/solr"; private static void Main(string[] args) { Startup.Init<Dictionary<string, object>>(serverURL); var solr = Startup.Container.GetInstance<ISolrOperations<Dictionary<string, object>>>(); solr.Query(Query.Field("id").In(Enumerable.Range(0, 1000).Select(x => x.ToString()).ToArray())); } } This creates the query "id:0 OR id:1 OR ... OR id:999", it's about 10KB after encoding, more than enough for our tests. Running this against Solr on Jetty 6 makes Jetty throw: 2010-12-13 17:52:33.362::WARN: handle failed java.io.IOException: FULL at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:274) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:202) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) Not very graceful... it should probably respond with 414 Request-URI Too Long instead of throwing like this, but clients shouldn't send such long URIs anyway. Steven Livingston has a good blog post describing a patch modifying some classes in SolrNet to deal with this issue. However, even though I never foresaw this problem when writing SolrNet, solving it does not really require any changes to the existing codebase. In this particular case, what we need to do concretely is override the Get() method of the ISolrConnection service and make it issue POST requests instead of GET. We can write a decorator to achieve this: public class PostSolrConnection : ISolrConnection { private readonly ISolrConnection conn; private readonly string serverUrl; public PostSolrConnection(ISolrConnection conn, string serverUrl) { this.conn = conn; this.serverUrl = serverUrl; } public string Post(string relativeUrl, string s) { return conn.Post(relativeUrl, s); } public string Get(string relativeUrl, IEnumerable<KeyValuePair<string, string>> parameters) { var u = new UriBuilder(serverUrl); u.Path += relativeUrl; var request = (HttpWebRequest) WebRequest.Create(u.Uri); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; var qs = string.Join("&", parameters .Select(kv => string.Format("{0}={1}", HttpUtility.UrlEncode(kv.Key), HttpUtility.UrlEncode(kv.Value))) .ToArray()); request.ContentLength = Encoding.UTF8.GetByteCount(qs); request.ProtocolVersion = HttpVersion.Version11; request.KeepAlive = true; try { using (var postParams = request.GetRequestStream()) using (var sw = new StreamWriter(postParams)) sw.Write(qs); using (var response = request.GetResponse()) using (var responseStream = response.GetResponseStream()) using (var sr = new StreamReader(responseStream, Encoding.UTF8, true)) return sr.ReadToEnd(); } catch (WebException e) { throw new SolrConnectionException(e); } } } Now we have to apply this decorator: private static void Main(string[] args) { Startup.Init<Dictionary<string, object>>(new PostSolrConnection(new SolrConnection(serverURL), serverURL)); var solr = Startup.Container.GetInstance<ISolrOperations<Dictionary<string, object>>>(); solr.Query(Query.Field("id").In(Enumerable.Range(0, 1000).Select(x => x.ToString()).ToArray())); } That's it! If you're using Windsor, applying the decorator looks like this: private static void Main(string[] args) { var container = new WindsorContainer(); container.Register(Component.For<ISolrConnection>() .ImplementedBy<PostSolrConnection>() .Parameters(Parameter.ForKey("serverUrl").Eq(serverURL))); container.AddFacility("solr", new SolrNetFacility(serverURL)); var solr = container.Resolve<ISolrOperations<Dictionary<string, object>>>(); solr.Query(Query.Field("id").In(Enumerable.Range(0, 1000).Select(x => x.ToString()).ToArray())); } This is the real benefit of writing decoupled code. Not testability, but flexibility. Testability is nice of course, but not the primary purpose. When your code is decoupled, you can even implement entire features mostly by rearranging the object graph. This is pretty much how I implemented multicore support in SolrNet. The PostSolrConnection implementation above works with SolrNet 0.3.0 and probably also 0.2.3. PostSolrConnection is not the default because: a) it needs to be tested thoroughly, and b) Solr doesn't emit cache headers when POSTing so it precludes caching. [Less]