solr express
5.4.0
5.4.0
  • Introduction
  • About SOLR Express
    • Release notes
    • About
      • License
      • Packages
    • Benchmarks
      • Version 3.1.2
      • Version 5.0.0
    • Breaking changes
      • Version 5.0.0
  • Tutorials
    • Getting started
    • Basic Features
      • Queries
      • Fail fast
      • Global settings
      • Local parameter
    • Facets
      • Facet field
      • Facet query
      • Facet range
      • Facet spatial
      • Nested facet
    • Advanced Features
      • Authentication and Authorization
      • Dynamic field behaviour
      • Result interceptors
Powered by GitBook
On this page
  • Feature
  • How to
  • Settings

Was this helpful?

  1. Tutorials
  2. Facets

Facet query

Feature

Create a facet query

How to

  1. Configure facet

    DocumentCollection<TechProductDocument> documentCollection; // from DI

    var rersult = documentCollection
        .Select()
        .FacetQuery("AliasName", q => q.Field(f => f.Features))
        .Execute();
  1. Optionally, change one or more settings

    DocumentCollection<TechProductDocument> documentCollection; // from DI

    var rersult = documentCollection
        .Select()
        .FacetQuery("AliasName", q => q.Field(f => f.Features), facet =>
        {
            facet.Minimum = 3;
            facet.Limit = 5;
        })
        .Execute();
  1. Read data

    rersult
        .Facets(out var data);

    foreach (FacetItemField facetItem in data)
    {
        // facetName = "InStock" or some alias (if configured)
        var facetName = facetItem.Name;
        //facetType = FacetType.Field
        var facetType = facetItem.FacetType;

        foreach (FacetItemQuery facetItem in data)
        {
            // facetName = "AliasName"
            var facetName = facetItem.Name;
            //facetType = FacetType.Query
            var facetType = facetItem.FacetType;
            // nested = nested facet (if configured)
            var nested = facetItem.Facets;
            // quantity = quantity of item's value
            var quantity = facetItem.Quantity;
        }
    }

Settings

Use case

How to

Sort type of result of facet

.FacetQuery("AliasName", q => q.Field(f => f.Features), facet => facet.SortType(FacetSortType.CountAsc))

Minimum count of itens in facet's result

.FacetQuery("AliasName", q => q.Field(f => f.Features), facet => facet.Minimum(2))

Limit of itens in facet's result

.FacetQuery("AliasName", q => q.Field(f => f.Features), facet => facet.Limit(10))

List of tags to exclude in facet calculation

.FacetQuery("AliasName", q => q.Field(f => f.Features), facet => facet.Excludes(new[] { "tag1", "tag2" }))

Specify a filter or list of filters to be intersected with the incoming domain before faceting

.FacetQuery("AliasName", q => q.Field(f => f.Features), facet => facet.Filter(f => f.Field(q => q.Id).EqualsTo(10)))

NOTE

PreviousFacet fieldNextFacet range

Last updated 6 years ago

Was this helpful?

Learn more about

queries