IFulltextQueryTDocumentMetadata Method

Returns query metadata (data is available after the query has been executed).

Definition

Namespace: SphinxConnector.FluentApi
Assembly: SphinxConnector (in SphinxConnector.dll) Version: 6.1.0
C#
IFulltextQuery<TDocument> Metadata(
	out QueryMetadata metadata
)

Parameters

metadata  QueryMetadata
The metadata for this query.

Return Value

IFulltextQueryTDocument
The current instance.

Example

Suppose you have the following class representing a document in your index:
C#

    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public decimal Price { get; set; }
        public int CategoryId { get; set; }
        public int VendorId { get; set; }
        public int Weight { get; set; }
    }

And you want to retrieve the meta data along with the query:
C#
using (IFulltextSession fulltextSession = fulltextStore.StartSession())
{                
    var results = fulltextSession.Query<Product>().
                                  Match("a product").
                                  Metadata(out QueryMetadata metadata).        
                                  ToList();
}

Retrieving metadata with future queries:
C#
using (IFulltextSession fulltextSession = fulltextStore.StartSession())
{                                
    var results = fulltextSession.Query<Product>().
                                  Match("a product").  
                                  Metadata(out QueryMetadata resultsMetadata).       
                                  ToFutureList();

    var facets = fulltextSession.Query<Product>().
                                 Match("a product").
                                 GroupBy(p => p.CategoryId).
                                 Select(p => new 
                                 { 
                                       p.CategoryId,
                                       Count = Projection.Count()
                                 }).
                                 Metadata(out QueryMetadata facetsMetadata). 
                                 ToFutureList();       

   foreach (result in results.Value) //<-- accessing the result of a query will cause all pending future queries 
   {                                //to be executed in one roundtrip to Sphinx at this point
        //...
   }
}

See Also