2023-04-13 10:46:09 +02:00
|
|
|
pub mod attribute_fid;
|
|
|
|
pub mod attribute_position;
|
2023-04-04 18:02:46 +02:00
|
|
|
pub mod distinct;
|
2023-04-24 16:57:12 +02:00
|
|
|
pub mod exactness;
|
2023-04-13 13:45:34 +02:00
|
|
|
pub mod geo_sort;
|
2023-04-04 18:02:46 +02:00
|
|
|
#[cfg(feature = "default")]
|
|
|
|
pub mod language;
|
2023-04-04 16:18:22 +02:00
|
|
|
pub mod ngram_split_words;
|
2023-04-04 18:02:46 +02:00
|
|
|
pub mod proximity;
|
2023-04-05 13:33:23 +02:00
|
|
|
pub mod proximity_typo;
|
2023-04-04 18:02:46 +02:00
|
|
|
pub mod sort;
|
2023-04-04 16:18:22 +02:00
|
|
|
pub mod typo;
|
2023-04-05 13:33:23 +02:00
|
|
|
pub mod typo_proximity;
|
2023-04-04 16:18:22 +02:00
|
|
|
pub mod words_tms;
|
2023-04-27 13:30:09 +02:00
|
|
|
pub mod stop_words;
|
2023-04-04 18:02:46 +02:00
|
|
|
|
|
|
|
fn collect_field_values(
|
|
|
|
index: &crate::Index,
|
|
|
|
txn: &heed::RoTxn,
|
|
|
|
fid: &str,
|
|
|
|
docids: &[u32],
|
|
|
|
) -> Vec<String> {
|
|
|
|
let mut values = vec![];
|
|
|
|
let fid = index.fields_ids_map(txn).unwrap().id(fid).unwrap();
|
|
|
|
for doc in index.documents(txn, docids.iter().copied()).unwrap() {
|
|
|
|
if let Some(v) = doc.1.get(fid) {
|
|
|
|
let v: serde_json::Value = serde_json::from_slice(v).unwrap();
|
|
|
|
let v = v.to_string();
|
|
|
|
values.push(v);
|
|
|
|
} else {
|
|
|
|
values.push("__does_not_exist__".to_owned());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
values
|
|
|
|
}
|