mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-27 04:25:06 +08:00
Improve the facet value displaying, extracting the facet level
This commit is contained in:
parent
5dd4dc2862
commit
0a1beb688c
@ -1,3 +1,4 @@
|
|||||||
|
use std::fmt::Write as _;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::{str, io, fmt};
|
use std::{str, io, fmt};
|
||||||
|
|
||||||
@ -278,11 +279,11 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn facet_number_value_to_string<T: fmt::Debug>(level: u8, left: T, right: T) -> String {
|
fn facet_number_value_to_string<T: fmt::Debug>(level: u8, left: T, right: T) -> (u8, String) {
|
||||||
if level == 0 {
|
if level == 0 {
|
||||||
format!("{:?} (level {})", left, level)
|
(level, format!("{:?}", left))
|
||||||
} else {
|
} else {
|
||||||
format!("{:?} to {:?} (level {})", left, right, level)
|
(level, format!("{:?} to {:?}", left, right))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -353,8 +354,16 @@ fn biggest_value_sizes(index: &Index, rtxn: &heed::RoTxn, limit: usize) -> anyho
|
|||||||
field_id,
|
field_id,
|
||||||
field_type,
|
field_type,
|
||||||
|key| key.to_owned(),
|
|key| key.to_owned(),
|
||||||
facet_number_value_to_string,
|
|level, left, right| {
|
||||||
facet_number_value_to_string,
|
let mut output = facet_number_value_to_string(level, left, right).1;
|
||||||
|
let _ = write!(&mut output, " (level {})", level);
|
||||||
|
output
|
||||||
|
},
|
||||||
|
|level, left, right| {
|
||||||
|
let mut output = facet_number_value_to_string(level, left, right).1;
|
||||||
|
let _ = write!(&mut output, " (level {})", level);
|
||||||
|
output
|
||||||
|
},
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
for result in iter {
|
for result in iter {
|
||||||
@ -413,7 +422,7 @@ fn facet_values_docids(index: &Index, rtxn: &heed::RoTxn, debug: bool, field_nam
|
|||||||
|
|
||||||
let stdout = io::stdout();
|
let stdout = io::stdout();
|
||||||
let mut wtr = csv::Writer::from_writer(stdout.lock());
|
let mut wtr = csv::Writer::from_writer(stdout.lock());
|
||||||
wtr.write_record(&["facet_value", "documents_count", "documents_ids"])?;
|
wtr.write_record(&["facet_value", "facet_level", "documents_count", "documents_ids"])?;
|
||||||
|
|
||||||
let db = index.facet_field_id_value_docids;
|
let db = index.facet_field_id_value_docids;
|
||||||
let iter = facet_values_iter(
|
let iter = facet_values_iter(
|
||||||
@ -421,20 +430,20 @@ fn facet_values_docids(index: &Index, rtxn: &heed::RoTxn, debug: bool, field_nam
|
|||||||
db,
|
db,
|
||||||
field_id,
|
field_id,
|
||||||
*field_type,
|
*field_type,
|
||||||
|key| key.to_owned(),
|
|key| (0, key.to_owned()),
|
||||||
facet_number_value_to_string,
|
facet_number_value_to_string,
|
||||||
facet_number_value_to_string,
|
facet_number_value_to_string,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
for result in iter {
|
for result in iter {
|
||||||
let (value, docids) = result?;
|
let ((level, value), docids) = result?;
|
||||||
let count = docids.len();
|
let count = docids.len();
|
||||||
let docids = if debug {
|
let docids = if debug {
|
||||||
format!("{:?}", docids)
|
format!("{:?}", docids)
|
||||||
} else {
|
} else {
|
||||||
format!("{:?}", docids.iter().collect::<Vec<_>>())
|
format!("{:?}", docids.iter().collect::<Vec<_>>())
|
||||||
};
|
};
|
||||||
wtr.write_record(&[value, count.to_string(), docids])?;
|
wtr.write_record(&[value, level.to_string(), count.to_string(), docids])?;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(wtr.flush()?)
|
Ok(wtr.flush()?)
|
||||||
|
Loading…
Reference in New Issue
Block a user