Fork me on GitHub
  • API

    Show / Hide Table of Contents

    Class DrillDownQuery

    A Lucene.Net.Search.Query for drill-down over facet categories. You should call Add(String, String[]) for every group of categories you want to drill-down over.

    NOTE: if you choose to create your own Lucene.Net.Search.Query by calling Term(String, String, String[]), it is recommended to wrap it with Lucene.Net.Search.ConstantScoreQuery and set the Lucene.Net.Search.Query.Boost to 0.0f, so that it does not affect the scores of the documents.

    Collection initializer note: To create and populate a DrillDownQuery in a single statement, you can use the following example as a guide:

    var drillDownQuery = new DrillDownQuery(config)
    {
        { "Publish Date", "2019" },
        { "Publish Date", "2020" },
        { "Publish Date", "2021" },
        { "timestamp", NumericRangeQuery.NewInt64Range("timestamp", range.Min, range.Max, range.MinInclusive, range.MaxInclusive) },
        { "filter", GetFilter() }
    };

    Note

    This API is experimental and might change in incompatible ways in the next release.

    Inheritance
    System.Object
    Lucene.Net.Search.Query
    DrillDownQuery
    Implements
    System.Collections.Generic.IEnumerable<Lucene.Net.Search.BooleanClause>
    System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String, System.Int32>>
    System.Collections.IEnumerable
    Inherited Members
    Lucene.Net.Search.Query.Boost
    Lucene.Net.Search.Query.ToString()
    Lucene.Net.Search.Query.CreateWeight(Lucene.Net.Search.IndexSearcher)
    Query.ExtractTerms(ISet<Term>)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    Namespace: Lucene.Net.Facet
    Assembly: Lucene.Net.Facet.dll
    Syntax
    public sealed class DrillDownQuery : Query, IEnumerable<BooleanClause>, IEnumerable<KeyValuePair<string, int>>, IEnumerable

    Constructors

    | Improve this Doc View Source

    DrillDownQuery(FacetsConfig)

    Creates a new DrillDownQuery without a base query, to perform a pure browsing query (equivalent to using Lucene.Net.Search.MatchAllDocsQuery as base).

    Declaration
    public DrillDownQuery(FacetsConfig config)
    Parameters
    Type Name Description
    FacetsConfig config
    | Improve this Doc View Source

    DrillDownQuery(FacetsConfig, Query)

    Creates a new DrillDownQuery over the given base query. Can be null, in which case the result Lucene.Net.Search.Query from Rewrite(IndexReader) will be a pure browsing query, filtering on the added categories only.

    Declaration
    public DrillDownQuery(FacetsConfig config, Query baseQuery)
    Parameters
    Type Name Description
    FacetsConfig config
    Lucene.Net.Search.Query baseQuery

    Methods

    | Improve this Doc View Source

    Add(String, Filter)

    Expert: add a custom drill-down Filter, e.g. when drilling down after range faceting.

    Declaration
    public void Add(string dim, Filter subFilter)
    Parameters
    Type Name Description
    System.String dim
    Lucene.Net.Search.Filter subFilter
    | Improve this Doc View Source

    Add(String, Query)

    Expert: add a custom drill-down subQuery. Use this when you have a separate way to drill-down on the dimension than the indexed facet ordinals.

    Declaration
    public void Add(string dim, Query subQuery)
    Parameters
    Type Name Description
    System.String dim
    Lucene.Net.Search.Query subQuery
    | Improve this Doc View Source

    Add(String, String[])

    Adds one dimension of drill downs; if you pass the same dimension more than once it is OR'd with the previous cofnstraints on that dimension, and all dimensions are AND'd against each other and the base query.

    Declaration
    public void Add(string dim, params string[] path)
    Parameters
    Type Name Description
    System.String dim
    System.String[] path
    | Improve this Doc View Source

    Clone()

    Declaration
    public override object Clone()
    Returns
    Type Description
    System.Object
    Overrides
    Lucene.Net.Search.Query.Clone()
    | Improve this Doc View Source

    Equals(Object)

    Declaration
    public override bool Equals(object obj)
    Parameters
    Type Name Description
    System.Object obj
    Returns
    Type Description
    System.Boolean
    Overrides
    Query.Equals(Object)
    | Improve this Doc View Source

    GetEnumerator()

    Returns an iterator on the clauses in this query. It implements the IEnumerable{BooleanClause} interface to make it possible to do:

    foreach (BooleanClause clause in drillDownQuery) {}
    Declaration
    public IEnumerator<BooleanClause> GetEnumerator()
    Returns
    Type Description
    System.Collections.Generic.IEnumerator<Lucene.Net.Search.BooleanClause>
    | Improve this Doc View Source

    GetHashCode()

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    System.Int32
    Overrides
    Lucene.Net.Search.Query.GetHashCode()
    | Improve this Doc View Source

    Rewrite(IndexReader)

    Declaration
    public override Query Rewrite(IndexReader r)
    Parameters
    Type Name Description
    Lucene.Net.Index.IndexReader r
    Returns
    Type Description
    Lucene.Net.Search.Query
    Overrides
    Lucene.Net.Search.Query.Rewrite(Lucene.Net.Index.IndexReader)
    | Improve this Doc View Source

    Term(String, String, String[])

    Creates a drill-down term.

    Declaration
    public static Term Term(string field, string dim, params string[] path)
    Parameters
    Type Name Description
    System.String field
    System.String dim
    System.String[] path
    Returns
    Type Description
    Lucene.Net.Index.Term
    | Improve this Doc View Source

    ToString(String)

    Declaration
    public override string ToString(string field)
    Parameters
    Type Name Description
    System.String field
    Returns
    Type Description
    System.String
    Overrides
    Query.ToString(String)

    Explicit Interface Implementations

    | Improve this Doc View Source

    IEnumerable<KeyValuePair<String, Int32>>.GetEnumerator()

    Returns an iterator on the dims in this query. It implements the interface to make it possible to do:

    foreach (KeyValuePair<string, int> dimensionAndCount in (IEnumerable<KeyValuePair<string, int>>)drillDownQuery) {}
    Declaration
    IEnumerator<KeyValuePair<string, int>> IEnumerable<KeyValuePair<string, int>>.GetEnumerator()
    Returns
    Type Description
    System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<System.String, System.Int32>>
    | Improve this Doc View Source

    IEnumerable.GetEnumerator()

    Declaration
    IEnumerator IEnumerable.GetEnumerator()
    Returns
    Type Description
    System.Collections.IEnumerator

    Implements

    System.Collections.Generic.IEnumerable<T>
    System.Collections.Generic.IEnumerable<T>
    System.Collections.IEnumerable
    • Improve this Doc
    • View Source
    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.