Skip to content

anti-social/tantivy-aggregations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aggregations for the Tantivy search engine

At the moment it is at a PoC state.

Usage example:

let filter_query = TermQuery::new(Term::from_field_u64(status_field, 0_u64));
let agg = filter_agg(
    &filter_query, 
    (
        count_agg(),
        terms_agg_u64(
            category_id_field,
            (
                count_agg(),
                min_agg_f64(price_field)
            )
        )
    )
);
let searcher = index_reader.searcher();
// The result type is specified as an example, it can be omitted
let agg_result: (u64, TermsAggResult<u64, (u64, Option<f64>)>) = searcher.agg_search(&AllQuery, &agg);
// Top 10 categories by document count
let top10_count = agg_result.1.top_k(10, |b| b.0);
// Top 10 categories by minimum price
let top10_min_price = agg_result.1.top_k(10, |b| b.1); 

TODO:

  • count
  • min, max (u64, i64, f64, date, u64s, i64s, f64s, dates)
  • sum (u64, i64, f64, u64s, i64s, f64s)
  • stat
  • cardinality
  • percentiles (f64, f64s)
  • terms, filtered_terms (u64, i64, u64s, i64s)
  • filter
  • filters
  • post_filter (u64, u64s, i64, i64s, f64, f64s, custom)
  • histogram (f64)
  • date_histogram
  • top_hits
  • dynamic aggregations (boxed) - need help

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages