mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-22 18:17:39 +08:00
Only register the _geo field
This commit is contained in:
parent
379cedb096
commit
2f8ba6944f
@ -303,8 +303,6 @@ where
|
||||
{
|
||||
// will be used in 'inject_vectors
|
||||
let vectors_value: Box<RawValue>;
|
||||
let geo_lat: Box<RawValue>;
|
||||
let geo_lng: Box<RawValue>;
|
||||
|
||||
document_buffer.clear();
|
||||
let mut unordered_field_buffer = Vec::new();
|
||||
@ -355,29 +353,12 @@ where
|
||||
}
|
||||
|
||||
if let Some(geo_value) = document.geo_field()? {
|
||||
#[derive(serde::Deserialize)]
|
||||
struct Geo {
|
||||
lat: serde_json::Value,
|
||||
lng: serde_json::Value,
|
||||
}
|
||||
|
||||
// We must flatten and generate the fields ids for the geo sub fields
|
||||
if let Ok(Geo { lat, lng }) = serde_json::from_str(geo_value.get()) {
|
||||
let lat_id =
|
||||
fields_ids_map.id_or_insert("_geo.lat").ok_or(UserError::AttributeLimitReached)?;
|
||||
geo_lat = serde_json::value::to_raw_value(&lat).unwrap();
|
||||
unordered_field_buffer.push((lat_id, &geo_lat));
|
||||
|
||||
let lng_id =
|
||||
fields_ids_map.id_or_insert("_geo.lng").ok_or(UserError::AttributeLimitReached)?;
|
||||
geo_lng = serde_json::value::to_raw_value(&lng).unwrap();
|
||||
unordered_field_buffer.push((lng_id, &geo_lng));
|
||||
}
|
||||
let fid = fields_ids_map.id_or_insert("_geo").ok_or(UserError::AttributeLimitReached)?;
|
||||
unordered_field_buffer.push((fid, geo_value));
|
||||
}
|
||||
|
||||
unordered_field_buffer.sort_by_key(|(fid, _)| *fid);
|
||||
for (fid, value) in unordered_field_buffer.iter() {
|
||||
dbg!(fields_ids_map.name(*fid), value.get());
|
||||
writer.insert(*fid, value.get().as_bytes()).unwrap();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user