Fork me on GitHub
  • API

    Show / Hide Table of Contents

    Lucene.Net.Facet Faceted Search

    This module provides multiple methods for computing facet counts and value aggregations:

    • Taxonomy-based methods rely on a separate taxonomy index to map hierarchical facet paths to global int ordinals for fast counting at search time; these methods can compute counts ((FastTaxonomyFacetCounts, TaxonomyFacetCounts) aggregate long or double values TaxonomyFacetSumInt32Associations, TaxonomyFacetSumSingleAssociations, TaxonomyFacetSumValueSource. Add FacetField or AssociationFacetField to your documents at index time to use taxonomy-based methods.
    • Sorted-set doc values method does not require a separate taxonomy index, and computes counts based on sorted set doc values fields (SortedSetDocValuesFacetCounts). Add SortedSetDocValuesFacetField to your documents at index time to use sorted set facet counts.
    • Range faceting Int64RangeFacetCounts, DoubleRangeFacetCounts compute counts for a dynamic numeric range from a provided <xref:Lucene.Net.Queries.Function.ValueSource> (previously indexed numeric field, or a dynamic expression such as distance).

      At search time you first run your search, but pass a FacetsCollector to gather all hits (and optionally, scores for each hit). Then, instantiate whichever facet methods you'd like to use to compute aggregates. Finally, all methods implement a common Facets base API that you use to obtain specific facet counts.

      The various FacetsCollector.Search() utility methods are useful for doing an "ordinary" search (sorting by score, or by a specified Sort) but also collecting into a FacetsCollector for subsequent faceting.

    • Improve this Doc
    Back to top Copyright © 2022 The Apache Software Foundation, Licensed under the Apache License, Version 2.0
    Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation.
    All other marks mentioned may be trademarks or registered trademarks of their respective owners.