Click or drag to resize
ISphinxQLExecutorQueryT Method (String, Object)
Executes the given SphinxQL query and returns a list of results of the given type.

Namespace: SphinxConnector.FluentApi
Assembly: SphinxConnector (in SphinxConnector.dll) Version: 3.12.6
Syntax
IList<T> Query<T>(
	string query,
	Object parameters = null
)

Parameters

query
Type: SystemString
The query to execute.
parameters (Optional)
Type: SystemObject
Optional parameters for the query.

Type Parameters

T
The result type.

Return Value

Type: IListT
A list of data of the given type. If the type is a built-in type like int, string, etc. only the data from the first column is returned, otherwise an instance is created per row, and a case insensitive, direct mapping between column-name and member-name is assumed.
Exceptions
ExceptionCondition
ArgumentExceptionOccurs if query is empty.
ArgumentNullExceptionOccurs if query is null.
FulltextExceptionOccurs when there is an error during the execution of the query.
Examples
The following example shows how to execute a query with parameters:
using (IFulltextSession fulltextSession = fulltextStore.StartSession())
{
    ISphinxQLExecutor sphinxQLExecutor = fulltextSession.Advanced.CreateSphinxQLExecutor();

    var parameters = new { query = "a product", categories = new[] { 23, 42 } };

    var results = sphinxQLExecutor.Query<Product>("SELECT * FROM products WHERE MATCH(@query) AND categories IN @categories", parameters);        
}
The next example shows a query with a built-in type as a result type:
using (IFulltextSession fulltextSession = fulltextStore.StartSession())
{
    ISphinxQLExecutor sphinxQLExecutor = fulltextSession.Advanced.CreateSphinxQLExecutor();

    var parameters = new { descriptions = new[] {"a description", "another description"}, query = "a product" };

    var snippets = sphinxQLExecutor.Query<string>("CALL SNIPPETS(@descriptions, 'products', @query)", parameters);
}
You can also project your results into a dynamic object:
using (IFulltextSession fulltextSession = fulltextStore.StartSession())
{
    ISphinxQLExecutor sphinxQLExecutor = fulltextSession.Advanced.CreateSphinxQLExecutor();

    var parameters = new { query = "a product", categories = new[] { 23, 42 } };

    var results = sphinxQLExecutor.Query<dynamic>("SELECT * FROM products WHERE MATCH(@query) AND categories IN @categories", parameters);        
}
See Also