SphinxConnector.NET 5.1 has been released

By Dennis

We're pleased to announce that SphinxConnector.NET 5.1 is now available via NuGet! You can also download a build from our site, but that only contains a version for .NET Framework 4.6.1. and higher.

This release adds a build for .NET 6.0, while .NET Core 2.1 has been removed as a target as it has gone out of support. We’ve added support for Manticore’s new LEVENSHTEIN() function and the DateOnly type introduced in .NET 6.

For a full list of changes, please refer to the version history.

SphinxConnector.NET 5.0 has been released

By Dennis

We're pleased to announce that SphinxConnector.NET 5.0 is now available via NuGet! You can also download a build from our site, but that only contains a version for .NET Framework 4.6.1. and higher.

With this release we’re saying good bye to Common.Logging, which has been replaced with our own logging abstraction. We’re providing separate NuGet packages for the most commonly used logging frameworks, namely:

Also included in SphinxConnector.NET is a simple console logging provider that can be used during development.

The second change in dependencies is the switch from JSON.NET to System.Text.Json as the default json handler. If for some reason you need to stay on JSON.NET, you can easily do so by implementing your own JsonObjectSerializer.

SphinxConnector.NET now includes builds for .NET Core 3.1 and .NET 5.0, where we’ve added implementations for new async methods to SphinxQLDataReader that were introduced with .NET Core 3.1. These builds also contain fluent API support for async enumerables via IFulltextQuery.ToAsyncEnumerable().

The biggest new feature is the introduction of prepared (sometimes also called ‘compiled’) queries to the fluent API.
The idea behind prepared queries is to create a query template that is parsed once and then reused on the following executions thus alleviating the overhead caused by parsing the expression tree and generating the SphinxQL statement. This can lead to significant reductions in allocations and time spend on parsing the expression tree of a query, especially in high load scenarios, while at the same time giving you all the advantages of a strongly typed query API. More about prepared queries can be found in the documentation.

For a full list of changes, please refer to the version history.

SphinxConnector.NET 4.3 has been released

By Dennis

We're pleased to announce that SphinxConnector.NET 4.3 is available for download and via NuGet!

In this release we've added a new BulkCopy class which efficiently copies data from an IDataReader to an index. We've also added support for the REMAP() function to the fluent API.

For a full list of changes, please refer to the version history.

SphinxConnector.NET 4.2 has been released

By Admin

We're pleased to announce that SphinxConnector.NET 4.2 is available for download and via NuGet!

This release contains some compatibility fixes for Manticore 3 and adds support for Manticore's REGEX() and CONCAT() functions. If you are using JSON attributes in conjunction with the fluent API you might want to checkout two new methods we've added to the JsonObjectSerializer. You can use these methods to access the raw bytes or chars returned from searchd and pass them directly to your JSON serializer if supported. This avoids the creation of intermediate strings which can be a huge saving. If you're looking for alternatives to JSON.NET, which is used by default by SphinxConnector.NET: we recently did a comparison of JSON serializers which can be found here.

For a full list of changes, please refer to the version history.

SphinxConnector.NET 4.1 has been released

By Dennis

We're pleased to announce that SphinxConnector.NET 4.1 is available for download and via NuGet!

For this release we’ve continued our work on improving performance and reducing memory usage. With the release of .NET Core 2.1 and the introduction of Span and related types, we were able to further improve the work done in 4.0. For example, we are now able to read data from searchd for primitive types more efficiently, namely by reading and converting data directly from the array of bytes instead of creating a string first. We also optimized the process of building JSON path strings within the fluent API, which could be a big source for allocations.

For a full list of changes, please refer to the version history.