mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-12-25 06:00:08 +01:00
Introduce two new optional_words and authorize_typos Search options
This commit is contained in:
parent
54b97ed8e1
commit
d48008339e
@ -33,13 +33,24 @@ pub struct Search<'a> {
|
|||||||
facet_condition: Option<FacetCondition>,
|
facet_condition: Option<FacetCondition>,
|
||||||
offset: usize,
|
offset: usize,
|
||||||
limit: usize,
|
limit: usize,
|
||||||
|
optional_words: bool,
|
||||||
|
authorize_typos: bool,
|
||||||
rtxn: &'a heed::RoTxn<'a>,
|
rtxn: &'a heed::RoTxn<'a>,
|
||||||
index: &'a Index,
|
index: &'a Index,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Search<'a> {
|
impl<'a> Search<'a> {
|
||||||
pub fn new(rtxn: &'a heed::RoTxn, index: &'a Index) -> Search<'a> {
|
pub fn new(rtxn: &'a heed::RoTxn, index: &'a Index) -> Search<'a> {
|
||||||
Search { query: None, facet_condition: None, offset: 0, limit: 20, rtxn, index }
|
Search {
|
||||||
|
query: None,
|
||||||
|
facet_condition: None,
|
||||||
|
offset: 0,
|
||||||
|
limit: 20,
|
||||||
|
optional_words: true,
|
||||||
|
authorize_typos: true,
|
||||||
|
rtxn,
|
||||||
|
index,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn query(&mut self, query: impl Into<String>) -> &mut Search<'a> {
|
pub fn query(&mut self, query: impl Into<String>) -> &mut Search<'a> {
|
||||||
@ -57,6 +68,16 @@ impl<'a> Search<'a> {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn optional_words(&mut self, value: bool) -> &mut Search<'a> {
|
||||||
|
self.optional_words = value;
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn authorize_typos(&mut self, value: bool) -> &mut Search<'a> {
|
||||||
|
self.authorize_typos = value;
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
pub fn facet_condition(&mut self, condition: FacetCondition) -> &mut Search<'a> {
|
pub fn facet_condition(&mut self, condition: FacetCondition) -> &mut Search<'a> {
|
||||||
self.facet_condition = Some(condition);
|
self.facet_condition = Some(condition);
|
||||||
self
|
self
|
||||||
@ -67,7 +88,9 @@ impl<'a> Search<'a> {
|
|||||||
let before = Instant::now();
|
let before = Instant::now();
|
||||||
let query_tree = match self.query.as_ref() {
|
let query_tree = match self.query.as_ref() {
|
||||||
Some(query) => {
|
Some(query) => {
|
||||||
let builder = QueryTreeBuilder::new(self.rtxn, self.index);
|
let mut builder = QueryTreeBuilder::new(self.rtxn, self.index);
|
||||||
|
builder.optional_words(self.optional_words);
|
||||||
|
builder.authorize_typos(self.authorize_typos);
|
||||||
let stop_words = &Set::default();
|
let stop_words = &Set::default();
|
||||||
let analyzer = Analyzer::new(AnalyzerConfig::default_with_stopwords(stop_words));
|
let analyzer = Analyzer::new(AnalyzerConfig::default_with_stopwords(stop_words));
|
||||||
let result = analyzer.analyze(query);
|
let result = analyzer.analyze(query);
|
||||||
@ -129,12 +152,23 @@ impl<'a> Search<'a> {
|
|||||||
|
|
||||||
impl fmt::Debug for Search<'_> {
|
impl fmt::Debug for Search<'_> {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
let Search { query, facet_condition, offset, limit, rtxn: _, index: _ } = self;
|
let Search {
|
||||||
|
query,
|
||||||
|
facet_condition,
|
||||||
|
offset,
|
||||||
|
limit,
|
||||||
|
optional_words,
|
||||||
|
authorize_typos,
|
||||||
|
rtxn: _,
|
||||||
|
index: _,
|
||||||
|
} = self;
|
||||||
f.debug_struct("Search")
|
f.debug_struct("Search")
|
||||||
.field("query", query)
|
.field("query", query)
|
||||||
.field("facet_condition", facet_condition)
|
.field("facet_condition", facet_condition)
|
||||||
.field("offset", offset)
|
.field("offset", offset)
|
||||||
.field("limit", limit)
|
.field("limit", limit)
|
||||||
|
.field("optional_words", optional_words)
|
||||||
|
.field("authorize_typos", authorize_typos)
|
||||||
.finish()
|
.finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user