mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-11-04 01:46:28 +00:00 
			
		
		
		
	fix split_query_string
This commit is contained in:
		@@ -882,6 +882,7 @@ mod tests {
 | 
			
		||||
 | 
			
		||||
        // even try to search for a document
 | 
			
		||||
        let reader = db.main_read_txn().unwrap();
 | 
			
		||||
        println!("here");
 | 
			
		||||
        let SortResult {documents, .. } = index.query_builder().query(&reader, Some("21 "), 0..20).unwrap();
 | 
			
		||||
        assert_matches!(documents.len(), 1);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -181,26 +181,9 @@ fn split_query_string<'a, A: AsRef<[u8]>>(s: &str, stop_words: &'a fst::Set<A>)
 | 
			
		||||
    analyzer
 | 
			
		||||
        .analyze(s)
 | 
			
		||||
        .tokens()
 | 
			
		||||
        .scan((0, false), |(offset, is_hard_sep), mut token| {
 | 
			
		||||
            match token.kind {
 | 
			
		||||
                TokenKind::Word | TokenKind::StopWord | TokenKind::Any => {
 | 
			
		||||
                    if *is_hard_sep {
 | 
			
		||||
                        *offset += 8;
 | 
			
		||||
                    } else {
 | 
			
		||||
                        *offset += 1;
 | 
			
		||||
                    }
 | 
			
		||||
                    *is_hard_sep = false;
 | 
			
		||||
                    token.char_index += *offset;
 | 
			
		||||
                }
 | 
			
		||||
                TokenKind::Separator(SeparatorKind::Hard) => {
 | 
			
		||||
                    *is_hard_sep = true;
 | 
			
		||||
                }
 | 
			
		||||
                _ => (),
 | 
			
		||||
            }
 | 
			
		||||
            Some((*offset, token))
 | 
			
		||||
        })
 | 
			
		||||
        .filter(|(_, t)| t.is_word())
 | 
			
		||||
        .map(|(i, Token { word, .. })| (i, word.to_string()))
 | 
			
		||||
        .filter(|t| t.is_word())
 | 
			
		||||
        .map(| Token { word, .. }| word.to_string())
 | 
			
		||||
        .enumerate()
 | 
			
		||||
        .collect()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -55,13 +55,13 @@ where
 | 
			
		||||
            .scan((0, false), |(offset, is_hard_sep), mut token| {
 | 
			
		||||
                match token.kind {
 | 
			
		||||
                    TokenKind::Word => {
 | 
			
		||||
                        token.char_index += *offset;
 | 
			
		||||
                        if *is_hard_sep {
 | 
			
		||||
                            *offset += 8;
 | 
			
		||||
                        } else {
 | 
			
		||||
                            *offset += 1;
 | 
			
		||||
                        }
 | 
			
		||||
                        *is_hard_sep = false;
 | 
			
		||||
                        token.char_index += *offset;
 | 
			
		||||
                    }
 | 
			
		||||
                    TokenKind::Separator(SeparatorKind::Hard) => {
 | 
			
		||||
                        *is_hard_sep = true;
 | 
			
		||||
@@ -110,13 +110,13 @@ where
 | 
			
		||||
                .scan((0, false), |(offset, is_hard_sep), mut token| {
 | 
			
		||||
                    match token.kind {
 | 
			
		||||
                        TokenKind::Word | TokenKind::StopWord | TokenKind::Any => {
 | 
			
		||||
                            token.char_index += *offset;
 | 
			
		||||
                            if *is_hard_sep {
 | 
			
		||||
                                *offset += 8;
 | 
			
		||||
                            } else {
 | 
			
		||||
                                *offset += 1;
 | 
			
		||||
                            }
 | 
			
		||||
                            *is_hard_sep = false;
 | 
			
		||||
                            token.char_index += *offset;
 | 
			
		||||
                        }
 | 
			
		||||
                        TokenKind::Separator(SeparatorKind::Hard) => {
 | 
			
		||||
                            *is_hard_sep = true;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user