mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-30 23:46:28 +00:00 
			
		
		
		
	Fix
This commit is contained in:
		
				
					committed by
					
						 Louis Dureuil
						Louis Dureuil
					
				
			
			
				
	
			
			
			
						parent
						
							8d77736a67
						
					
				
				
					commit
					11ea5acff9
				
			| @@ -73,7 +73,7 @@ pub fn extract_word_docids<R: io::Read + io::Seek>( | |||||||
|     while let Some((key, value)) = cursor.move_on_next()? { |     while let Some((key, value)) = cursor.move_on_next()? { | ||||||
|         let (document_id_bytes, fid_bytes) = try_split_array_at(key) |         let (document_id_bytes, fid_bytes) = try_split_array_at(key) | ||||||
|             .ok_or(SerializationError::Decoding { db_name: Some(DOCID_WORD_POSITIONS) })?; |             .ok_or(SerializationError::Decoding { db_name: Some(DOCID_WORD_POSITIONS) })?; | ||||||
|         let (fid_bytes, _) = try_split_array_at(key) |         let (fid_bytes, _) = try_split_array_at(fid_bytes) | ||||||
|             .ok_or(SerializationError::Decoding { db_name: Some(DOCID_WORD_POSITIONS) })?; |             .ok_or(SerializationError::Decoding { db_name: Some(DOCID_WORD_POSITIONS) })?; | ||||||
|         let document_id = u32::from_be_bytes(document_id_bytes); |         let document_id = u32::from_be_bytes(document_id_bytes); | ||||||
|         fid = u16::from_be_bytes(fid_bytes); |         fid = u16::from_be_bytes(fid_bytes); | ||||||
|   | |||||||
| @@ -47,25 +47,25 @@ pub fn extract_word_pair_proximity_docids<R: io::Read + io::Seek>( | |||||||
|             .ok_or(SerializationError::Decoding { db_name: Some(DOCID_WORD_POSITIONS) })?; |             .ok_or(SerializationError::Decoding { db_name: Some(DOCID_WORD_POSITIONS) })?; | ||||||
|         let document_id = u32::from_be_bytes(document_id_bytes); |         let document_id = u32::from_be_bytes(document_id_bytes); | ||||||
|  |  | ||||||
|         for (position, word) in KvReaderU16::new(&value).iter() { |         // if we change document, we fill the sorter | ||||||
|             // if we change document, we fill the sorter |         if current_document_id.map_or(false, |id| id != document_id) { | ||||||
|             if current_document_id.map_or(false, |id| id != document_id) { |             while !word_positions.is_empty() { | ||||||
|                 while !word_positions.is_empty() { |                 word_positions_into_word_pair_proximity( | ||||||
|                     word_positions_into_word_pair_proximity( |                     &mut word_positions, | ||||||
|                         &mut word_positions, |                     &mut word_pair_proximity, | ||||||
|                         &mut word_pair_proximity, |  | ||||||
|                     )?; |  | ||||||
|                 } |  | ||||||
|  |  | ||||||
|                 document_word_positions_into_sorter( |  | ||||||
|                     document_id, |  | ||||||
|                     &word_pair_proximity, |  | ||||||
|                     &mut word_pair_proximity_docids_sorter, |  | ||||||
|                 )?; |                 )?; | ||||||
|                 word_pair_proximity.clear(); |  | ||||||
|                 word_positions.clear(); |  | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             document_word_positions_into_sorter( | ||||||
|  |                 document_id, | ||||||
|  |                 &word_pair_proximity, | ||||||
|  |                 &mut word_pair_proximity_docids_sorter, | ||||||
|  |             )?; | ||||||
|  |             word_pair_proximity.clear(); | ||||||
|  |             word_positions.clear(); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         for (position, word) in KvReaderU16::new(&value).iter() { | ||||||
|             // drain the proximity window until the head word is considered close to the word we are inserting. |             // drain the proximity window until the head word is considered close to the word we are inserting. | ||||||
|             while word_positions.get(0).map_or(false, |(_w, p)| { |             while word_positions.get(0).map_or(false, |(_w, p)| { | ||||||
|                 positions_proximity(*p as u32, position as u32) > MAX_DISTANCE |                 positions_proximity(*p as u32, position as u32) > MAX_DISTANCE | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user