mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-04 20:37:15 +02:00
enables faceted search
This commit is contained in:
parent
e07fe017c1
commit
d7f099d3ba
4 changed files with 106 additions and 51 deletions
|
@ -6,6 +6,7 @@ use std::time::Instant;
|
|||
use indexmap::IndexMap;
|
||||
use log::error;
|
||||
use meilisearch_core::Filter;
|
||||
use meilisearch_core::facets::FacetFilter;
|
||||
use meilisearch_core::criterion::*;
|
||||
use meilisearch_core::settings::RankingRule;
|
||||
use meilisearch_core::{Highlight, Index, MainT, RankedMap};
|
||||
|
@ -34,6 +35,7 @@ impl IndexSearchExt for Index {
|
|||
attributes_to_highlight: None,
|
||||
filters: None,
|
||||
matches: false,
|
||||
facet_filters: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -48,6 +50,7 @@ pub struct SearchBuilder<'a> {
|
|||
attributes_to_highlight: Option<HashSet<String>>,
|
||||
filters: Option<String>,
|
||||
matches: bool,
|
||||
facet_filters: Option<FacetFilter>,
|
||||
}
|
||||
|
||||
impl<'a> SearchBuilder<'a> {
|
||||
|
@ -82,6 +85,11 @@ impl<'a> SearchBuilder<'a> {
|
|||
self
|
||||
}
|
||||
|
||||
pub fn add_facet_filters(&mut self, filters: FacetFilter) -> &SearchBuilder {
|
||||
self.facet_filters = Some(filters);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn filters(&mut self, value: String) -> &SearchBuilder {
|
||||
self.filters = Some(value);
|
||||
self
|
||||
|
@ -138,6 +146,8 @@ impl<'a> SearchBuilder<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
query_builder.set_facets(self.facet_filters.as_ref());
|
||||
|
||||
let start = Instant::now();
|
||||
let result = query_builder.query(reader, &self.query, self.offset..(self.offset + self.limit));
|
||||
let (docs, nb_hits) = result.map_err(ResponseError::search_documents)?;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue