SphinxConnector 3.10.7
SphinxConnector 3.10.7 | 1.6 Mb
SphinxConnector.NET offers a fluent query API that makes using Sphinx with .NET easier and more comfortable than ever. Its fluent interface has been designed for great usability and ease of use. Operating directly on your document models, it lets you create your queries in a strongly typed, LINQ-like fashion. SphinxConnector.NET supports logging different types of messages to help developers identify problems or optimize their setup. By leveraging the well-known Common.Logging library, the logging infrastructure integrates with the most commonly used .NET logging frameworks including NLog, log4net and the Microsoft Enterprise Library.
Easy Query Creation
Even the most complex queries can be created easily without writing a single line of SphinxQL with the LINQ-like query API. It makes you more productive, your code becomes easier to maintain and is easier to refactor. The fluent API provides you with a LINQ-like query API to design your full-text queries. It is tailored to the needs of .NET developers working with the Sphinx full-text search engine. Naturally, the fluent API supports tasks like ordering and grouping results, defining result-set sizes and projecting your results into e.g. anonymous types. In addition to querying, it also supports saving and deleting documents from real-time indexes for which it generates optimized statements depending on the context.
Under the hood, SphinxConnector.NET translates your input to SphinxQL, executes your query using its infrastructure for SphinxQL and maps the results to your document model. By using the SphinxQL API as the underlying query mechanism, users benefit from features like connection pooling, without having to manually write SphinxQL queries.
Optimized Save and Delete
You can save and delete documents in real-time indexes with just a method call. SphinxConnector.NET takes care of the rest and generates optimized statements for great performance.
using (IFulltextSession session = fulltextStore.StartSession())
{
session.Save(new Book
{
Id = 1,
Author = "George R.R. Martin",
Title = "A Game of Thrones: A Song of Ice and Fire: Book One",
EbookAvailable = true,
Categories = new long[] { 1, 2 },
Price = 5.60m,
ReleaseDate = new DateTime(1997, 8, 4)
});
session.FlushChanges();
}
{
session.Save(new Book
{
Id = 1,
Author = "George R.R. Martin",
Title = "A Game of Thrones: A Song of Ice and Fire: Book One",
EbookAvailable = true,
Categories = new long[] { 1, 2 },
Price = 5.60m,
ReleaseDate = new DateTime(1997, 8, 4)
});
session.FlushChanges();
}
Convention Based Configuration
By using a convention based approach, the time you spend on configuration is reduced to a minimum. It keeps your code free of custom attributes, requires no manual object mappings and things generally work out of the box. SphinxConnector.NET uses a convention based approach for many of its configuration settings. For example, when it comes to mapping objects to indexes or properties to attributes, you do not have to provide any manual mappings or clutter your code with custom attributes. The mapping is done via conventions that are defined in the FulltextStore class. You can of course change the default conventions if necessary.
Example for an index name convention for a main-delta setup:
IFulltextStore fulltextStore = new FulltextStore().Initialize();
fulltextStore.Conventions.GetIndexName = (type, ctx) => String.Format("{0}, {0}_delta", type.Name.ToLowerInvariant() + "s");
fulltextStore.Conventions.GetIndexName = (type, ctx) => String.Format("{0}, {0}_delta", type.Name.ToLowerInvariant() + "s");
No-Fuss Development
SphinxConnector.NET lets you focus on the task at hand: providing great full-text search capabilities for your users. It doesn't force you to create manual mappings for your objects, you don't have to use some clunky designer, setup is minimal: It just gets out of your way.
Intuitive to Use
The fluent query API allows both beginners and advanced users to easily design their full-text queries. Beginners will appreciate how easy it is to get started, advanced users will see how SphinxConnector.NET increases their productivity in complex scenarios.
Customizable if Needed
While the default configuration and mapping conventions already cover many common usage scenarios, SphinxConnector.NET can be easily customized if necessary.
Classic API's
SphinxConnector.NET provides high performance implementations of the native API and standard ADO.NET 2.0 classes for executing SphinxQL statements. Please see below for a list of features exposed by each API:
Native API
Support for Sphinx 2.0.1 and up
Support for string attributes introduced with Sphinx 1.10.1
Support for features introduced in 0.9.9 like:
Persistent connections: open one connection for several operations to minimize network overhead.
Override attributes: temporarily change the value of an attribute without modifying the actual value for advanced search scenarios.
Select clause: write SQL-like statements to operate on attributes
Configurable Encoding
Search related features:
Set value and range filters
Schedule several queries for batch execution
Specify how Sphinx should match and rank documents
and more
Access to additional functions exposed by the Sphinx search engine:
Build excerpts
Build keywords
Update attributes
Query Sphinx for status variables
SphinxConnector.NET uses custom types as arguments for methods operating on Sphinx attributes. This gives you strongly typed access to these methods and also enables the compiler to check whether the operation is valid for a given type.
Support for Sphinx 2.0.1 and up
Support for string attributes introduced with Sphinx 1.10.1
Support for features introduced in 0.9.9 like:
Persistent connections: open one connection for several operations to minimize network overhead.
Override attributes: temporarily change the value of an attribute without modifying the actual value for advanced search scenarios.
Select clause: write SQL-like statements to operate on attributes
Configurable Encoding
Search related features:
Set value and range filters
Schedule several queries for batch execution
Specify how Sphinx should match and rank documents
and more
Access to additional functions exposed by the Sphinx search engine:
Build excerpts
Build keywords
Update attributes
Query Sphinx for status variables
SphinxConnector.NET uses custom types as arguments for methods operating on Sphinx attributes. This gives you strongly typed access to these methods and also enables the compiler to check whether the operation is valid for a given type.
SphinxQL
Based on standard ADO.NET 2.0 classes:
SphinxQLConnection
SphinxQLConnectionStringBuilder
SphinxQLCommand
SphinxQLDataAdapter
SphinxQLDataReader
SphinxQLParameter
SphinxQLTransaction
Tailored to Sphinx specific data types and features, e.g.
Automatic conversion from .NET types to Sphinx types and vice versa
Methods for handling MVA values
Insert and Update Records in Real-Time Indexes
Select from any Index Type
Select via DataReader or DataAdapter
Connection Pooling for Maximum Performance
Support for Transactions
Support for TransactionScope (Local and Distributed Transactions)
Support for Command Parameters
Automatically detects and uses features based on Sphinx version, e.g. server side multi-query support with Sphinx 2.0.1 and above
Based on standard ADO.NET 2.0 classes:
SphinxQLConnection
SphinxQLConnectionStringBuilder
SphinxQLCommand
SphinxQLDataAdapter
SphinxQLDataReader
SphinxQLParameter
SphinxQLTransaction
Tailored to Sphinx specific data types and features, e.g.
Automatic conversion from .NET types to Sphinx types and vice versa
Methods for handling MVA values
Insert and Update Records in Real-Time Indexes
Select from any Index Type
Select via DataReader or DataAdapter
Connection Pooling for Maximum Performance
Support for Transactions
Support for TransactionScope (Local and Distributed Transactions)
Support for Command Parameters
Automatically detects and uses features based on Sphinx version, e.g. server side multi-query support with Sphinx 2.0.1 and above
Home:
https://www.sphinxconnector.net/
[/b]
[b] Only for V.I.P
Warning! You are not allowed to view this text.