mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-22 21:04:27 +01:00
Make clippy happy
This commit is contained in:
parent
462b4c0080
commit
0dbf1a16ff
@ -36,7 +36,7 @@ fn setup_index() -> Index {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn setup_settings<'t>(
|
fn setup_settings<'t>(
|
||||||
wtxn: &mut RwTxn<'t, '_>,
|
wtxn: &mut RwTxn<'t>,
|
||||||
index: &'t Index,
|
index: &'t Index,
|
||||||
primary_key: &str,
|
primary_key: &str,
|
||||||
searchable_fields: &[&str],
|
searchable_fields: &[&str],
|
||||||
|
@ -13,12 +13,12 @@ use crate::{Result, Version};
|
|||||||
|
|
||||||
mod compat;
|
mod compat;
|
||||||
|
|
||||||
pub(self) mod v1;
|
mod v1;
|
||||||
pub(self) mod v2;
|
mod v2;
|
||||||
pub(self) mod v3;
|
mod v3;
|
||||||
pub(self) mod v4;
|
mod v4;
|
||||||
pub(self) mod v5;
|
mod v5;
|
||||||
pub(self) mod v6;
|
mod v6;
|
||||||
|
|
||||||
pub type Document = serde_json::Map<String, serde_json::Value>;
|
pub type Document = serde_json::Map<String, serde_json::Value>;
|
||||||
pub type UpdateFile = dyn Iterator<Item = Result<Document>>;
|
pub type UpdateFile = dyn Iterator<Item = Result<Document>>;
|
||||||
|
@ -56,8 +56,7 @@ pub enum RankingRule {
|
|||||||
Desc(String),
|
Desc(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
static ASC_DESC_REGEX: Lazy<Regex> =
|
static ASC_DESC_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new(r"(asc|desc)\(([\w_-]+)\)").unwrap());
|
||||||
Lazy::new(|| Regex::new(r#"(asc|desc)\(([\w_-]+)\)"#).unwrap());
|
|
||||||
|
|
||||||
impl FromStr for RankingRule {
|
impl FromStr for RankingRule {
|
||||||
type Err = ();
|
type Err = ();
|
||||||
|
@ -564,10 +564,10 @@ pub mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_escaped() {
|
fn parse_escaped() {
|
||||||
insta::assert_display_snapshot!(p(r#"title = 'foo\\'"#), @r#"{title} = {foo\}"#);
|
insta::assert_display_snapshot!(p(r"title = 'foo\\'"), @r#"{title} = {foo\}"#);
|
||||||
insta::assert_display_snapshot!(p(r#"title = 'foo\\\\'"#), @r#"{title} = {foo\\}"#);
|
insta::assert_display_snapshot!(p(r"title = 'foo\\\\'"), @r#"{title} = {foo\\}"#);
|
||||||
insta::assert_display_snapshot!(p(r#"title = 'foo\\\\\\'"#), @r#"{title} = {foo\\\}"#);
|
insta::assert_display_snapshot!(p(r"title = 'foo\\\\\\'"), @r#"{title} = {foo\\\}"#);
|
||||||
insta::assert_display_snapshot!(p(r#"title = 'foo\\\\\\\\'"#), @r#"{title} = {foo\\\\}"#);
|
insta::assert_display_snapshot!(p(r"title = 'foo\\\\\\\\'"), @r#"{title} = {foo\\\\}"#);
|
||||||
// but it also works with other sequencies
|
// but it also works with other sequencies
|
||||||
insta::assert_display_snapshot!(p(r#"title = 'foo\x20\n\t\"\'"'"#), @"{title} = {foo \n\t\"\'\"}");
|
insta::assert_display_snapshot!(p(r#"title = 'foo\x20\n\t\"\'"'"#), @"{title} = {foo \n\t\"\'\"}");
|
||||||
}
|
}
|
||||||
|
@ -270,8 +270,8 @@ pub mod test {
|
|||||||
("aaaa", "", rtok("", "aaaa"), "aaaa"),
|
("aaaa", "", rtok("", "aaaa"), "aaaa"),
|
||||||
(r#"aa"aa"#, r#""aa"#, rtok("", "aa"), "aa"),
|
(r#"aa"aa"#, r#""aa"#, rtok("", "aa"), "aa"),
|
||||||
(r#"aa\"aa"#, r#""#, rtok("", r#"aa\"aa"#), r#"aa"aa"#),
|
(r#"aa\"aa"#, r#""#, rtok("", r#"aa\"aa"#), r#"aa"aa"#),
|
||||||
(r#"aa\\\aa"#, r#""#, rtok("", r#"aa\\\aa"#), r#"aa\\\aa"#),
|
(r"aa\\\aa", r#""#, rtok("", r"aa\\\aa"), r"aa\\\aa"),
|
||||||
(r#"aa\\"\aa"#, r#""\aa"#, rtok("", r#"aa\\"#), r#"aa\\"#),
|
(r#"aa\\"\aa"#, r#""\aa"#, rtok("", r"aa\\"), r"aa\\"),
|
||||||
(r#"aa\\\"\aa"#, r#""#, rtok("", r#"aa\\\"\aa"#), r#"aa\\"\aa"#),
|
(r#"aa\\\"\aa"#, r#""#, rtok("", r#"aa\\\"\aa"#), r#"aa\\"\aa"#),
|
||||||
(r#"\"\""#, r#""#, rtok("", r#"\"\""#), r#""""#),
|
(r#"\"\""#, r#""#, rtok("", r#"\"\""#), r#""""#),
|
||||||
];
|
];
|
||||||
@ -301,12 +301,12 @@ pub mod test {
|
|||||||
);
|
);
|
||||||
// simple quote
|
// simple quote
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
unescape(Span::new_extra(r#"Hello \'World\'"#, ""), '\''),
|
unescape(Span::new_extra(r"Hello \'World\'", ""), '\''),
|
||||||
r#"Hello 'World'"#.to_string()
|
r#"Hello 'World'"#.to_string()
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
unescape(Span::new_extra(r#"Hello \\\'World\\\'"#, ""), '\''),
|
unescape(Span::new_extra(r"Hello \\\'World\\\'", ""), '\''),
|
||||||
r#"Hello \\'World\\'"#.to_string()
|
r"Hello \\'World\\'".to_string()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,19 +335,19 @@ pub mod test {
|
|||||||
("\"cha'nnel\"", "cha'nnel", false),
|
("\"cha'nnel\"", "cha'nnel", false),
|
||||||
("I'm tamo", "I", false),
|
("I'm tamo", "I", false),
|
||||||
// escaped thing but not quote
|
// escaped thing but not quote
|
||||||
(r#""\\""#, r#"\"#, true),
|
(r#""\\""#, r"\", true),
|
||||||
(r#""\\\\\\""#, r#"\\\"#, true),
|
(r#""\\\\\\""#, r"\\\", true),
|
||||||
(r#""aa\\aa""#, r#"aa\aa"#, true),
|
(r#""aa\\aa""#, r"aa\aa", true),
|
||||||
// with double quote
|
// with double quote
|
||||||
(r#""Hello \"world\"""#, r#"Hello "world""#, true),
|
(r#""Hello \"world\"""#, r#"Hello "world""#, true),
|
||||||
(r#""Hello \\\"world\\\"""#, r#"Hello \"world\""#, true),
|
(r#""Hello \\\"world\\\"""#, r#"Hello \"world\""#, true),
|
||||||
(r#""I'm \"super\" tamo""#, r#"I'm "super" tamo"#, true),
|
(r#""I'm \"super\" tamo""#, r#"I'm "super" tamo"#, true),
|
||||||
(r#""\"\"""#, r#""""#, true),
|
(r#""\"\"""#, r#""""#, true),
|
||||||
// with simple quote
|
// with simple quote
|
||||||
(r#"'Hello \'world\''"#, r#"Hello 'world'"#, true),
|
(r"'Hello \'world\''", r#"Hello 'world'"#, true),
|
||||||
(r#"'Hello \\\'world\\\''"#, r#"Hello \'world\'"#, true),
|
(r"'Hello \\\'world\\\''", r"Hello \'world\'", true),
|
||||||
(r#"'I\'m "super" tamo'"#, r#"I'm "super" tamo"#, true),
|
(r#"'I\'m "super" tamo'"#, r#"I'm "super" tamo"#, true),
|
||||||
(r#"'\'\''"#, r#"''"#, true),
|
(r"'\'\''", r#"''"#, true),
|
||||||
];
|
];
|
||||||
|
|
||||||
for (input, expected, escaped) in test_case {
|
for (input, expected, escaped) in test_case {
|
||||||
|
@ -1482,7 +1482,6 @@ impl IndexScheduler {
|
|||||||
self.all_tasks.delete(wtxn, &task)?;
|
self.all_tasks.delete(wtxn, &task)?;
|
||||||
}
|
}
|
||||||
for canceled_by in affected_canceled_by {
|
for canceled_by in affected_canceled_by {
|
||||||
let canceled_by = canceled_by;
|
|
||||||
if let Some(mut tasks) = self.canceled_by.get(wtxn, &canceled_by)? {
|
if let Some(mut tasks) = self.canceled_by.get(wtxn, &canceled_by)? {
|
||||||
tasks -= &to_delete_tasks;
|
tasks -= &to_delete_tasks;
|
||||||
if tasks.is_empty() {
|
if tasks.is_empty() {
|
||||||
|
@ -730,7 +730,7 @@ impl IndexScheduler {
|
|||||||
if let Some(canceled_by) = &query.canceled_by {
|
if let Some(canceled_by) = &query.canceled_by {
|
||||||
let mut all_canceled_tasks = RoaringBitmap::new();
|
let mut all_canceled_tasks = RoaringBitmap::new();
|
||||||
for cancel_task_uid in canceled_by {
|
for cancel_task_uid in canceled_by {
|
||||||
if let Some(canceled_by_uid) = self.canceled_by.get(rtxn, &*cancel_task_uid)? {
|
if let Some(canceled_by_uid) = self.canceled_by.get(rtxn, cancel_task_uid)? {
|
||||||
all_canceled_tasks |= canceled_by_uid;
|
all_canceled_tasks |= canceled_by_uid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1509,8 +1509,8 @@ impl<'a> Dump<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.statuses.entry(task.status).or_insert(RoaringBitmap::new()).insert(task.uid);
|
self.statuses.entry(task.status).or_default().insert(task.uid);
|
||||||
self.kinds.entry(task.kind.as_kind()).or_insert(RoaringBitmap::new()).insert(task.uid);
|
self.kinds.entry(task.kind.as_kind()).or_default().insert(task.uid);
|
||||||
|
|
||||||
Ok(task)
|
Ok(task)
|
||||||
}
|
}
|
||||||
|
@ -337,8 +337,6 @@ impl IndexScheduler {
|
|||||||
let rtxn = self.env.read_txn().unwrap();
|
let rtxn = self.env.read_txn().unwrap();
|
||||||
for task in self.all_tasks.iter(&rtxn).unwrap() {
|
for task in self.all_tasks.iter(&rtxn).unwrap() {
|
||||||
let (task_id, task) = task.unwrap();
|
let (task_id, task) = task.unwrap();
|
||||||
let task_id = task_id;
|
|
||||||
|
|
||||||
let task_index_uid = task.index_uid().map(ToOwned::to_owned);
|
let task_index_uid = task.index_uid().map(ToOwned::to_owned);
|
||||||
|
|
||||||
let Task {
|
let Task {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
#![allow(clippy::redundant_closure_call)]
|
||||||
|
|
||||||
use actix_web::web::Data;
|
use actix_web::web::Data;
|
||||||
use actix_web::{web, HttpRequest, HttpResponse};
|
use actix_web::{web, HttpRequest, HttpResponse};
|
||||||
use deserr::actix_web::AwebJson;
|
use deserr::actix_web::AwebJson;
|
||||||
|
@ -46,7 +46,7 @@ pub async fn multi_search_with_post(
|
|||||||
// Explicitly expect a `(ResponseError, usize)` for the error type rather than `ResponseError` only,
|
// Explicitly expect a `(ResponseError, usize)` for the error type rather than `ResponseError` only,
|
||||||
// so that `?` doesn't work if it doesn't use `with_index`, ensuring that it is not forgotten in case of code
|
// so that `?` doesn't work if it doesn't use `with_index`, ensuring that it is not forgotten in case of code
|
||||||
// changes.
|
// changes.
|
||||||
let search_results: Result<_, (ResponseError, usize)> = (|| {
|
let search_results: Result<_, (ResponseError, usize)> = {
|
||||||
async {
|
async {
|
||||||
let mut search_results = Vec::with_capacity(queries.len());
|
let mut search_results = Vec::with_capacity(queries.len());
|
||||||
for (query_index, (index_uid, mut query)) in
|
for (query_index, (index_uid, mut query)) in
|
||||||
@ -88,7 +88,7 @@ pub async fn multi_search_with_post(
|
|||||||
}
|
}
|
||||||
Ok(search_results)
|
Ok(search_results)
|
||||||
}
|
}
|
||||||
})()
|
}
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
if search_results.is_ok() {
|
if search_results.is_ok() {
|
||||||
|
@ -4,7 +4,7 @@ use once_cell::sync::Lazy;
|
|||||||
use crate::common::{Server, Value};
|
use crate::common::{Server, Value};
|
||||||
use crate::json;
|
use crate::json;
|
||||||
|
|
||||||
pub(self) static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
||||||
json!([
|
json!([
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
@ -107,8 +107,8 @@ pub(self) static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
|||||||
])
|
])
|
||||||
});
|
});
|
||||||
|
|
||||||
pub(self) static DOCUMENT_PRIMARY_KEY: &str = "id";
|
static DOCUMENT_PRIMARY_KEY: &str = "id";
|
||||||
pub(self) static DOCUMENT_DISTINCT_KEY: &str = "product_id";
|
static DOCUMENT_DISTINCT_KEY: &str = "product_id";
|
||||||
|
|
||||||
/// testing: https://github.com/meilisearch/meilisearch/issues/4078
|
/// testing: https://github.com/meilisearch/meilisearch/issues/4078
|
||||||
#[actix_rt::test]
|
#[actix_rt::test]
|
||||||
|
@ -4,7 +4,7 @@ use once_cell::sync::Lazy;
|
|||||||
use crate::common::{Server, Value};
|
use crate::common::{Server, Value};
|
||||||
use crate::json;
|
use crate::json;
|
||||||
|
|
||||||
pub(self) static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
||||||
json!([
|
json!([
|
||||||
{
|
{
|
||||||
"title": "Shazam!",
|
"title": "Shazam!",
|
||||||
|
@ -4,7 +4,7 @@ use once_cell::sync::Lazy;
|
|||||||
use crate::common::{Server, Value};
|
use crate::common::{Server, Value};
|
||||||
use crate::json;
|
use crate::json;
|
||||||
|
|
||||||
pub(self) static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
||||||
json!([
|
json!([
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
@ -15,7 +15,7 @@ use once_cell::sync::Lazy;
|
|||||||
use crate::common::{Server, Value};
|
use crate::common::{Server, Value};
|
||||||
use crate::json;
|
use crate::json;
|
||||||
|
|
||||||
pub(self) static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
||||||
json!([
|
json!([
|
||||||
{
|
{
|
||||||
"title": "Shazam!",
|
"title": "Shazam!",
|
||||||
@ -40,7 +40,7 @@ pub(self) static DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
|||||||
])
|
])
|
||||||
});
|
});
|
||||||
|
|
||||||
pub(self) static NESTED_DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
static NESTED_DOCUMENTS: Lazy<Value> = Lazy::new(|| {
|
||||||
json!([
|
json!([
|
||||||
{
|
{
|
||||||
"id": 852,
|
"id": 852,
|
||||||
|
@ -29,7 +29,7 @@ impl ExternalDocumentsIds {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get<A: AsRef<str>>(&self, rtxn: &RoTxn, external_id: A) -> heed::Result<Option<u32>> {
|
pub fn get<A: AsRef<str>>(&self, rtxn: &RoTxn, external_id: A) -> heed::Result<Option<u32>> {
|
||||||
Ok(self.0.get(rtxn, external_id.as_ref())?)
|
self.0.get(rtxn, external_id.as_ref())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// An helper function to debug this type, returns an `HashMap` of both,
|
/// An helper function to debug this type, returns an `HashMap` of both,
|
||||||
|
@ -163,7 +163,7 @@ impl<Q: RankingRuleQueryTrait> GeoSort<Q> {
|
|||||||
// computing the distance between two points is expensive thus we cache the result
|
// computing the distance between two points is expensive thus we cache the result
|
||||||
documents
|
documents
|
||||||
.sort_by_cached_key(|(_, p)| distance_between_two_points(&self.point, p) as usize);
|
.sort_by_cached_key(|(_, p)| distance_between_two_points(&self.point, p) as usize);
|
||||||
self.cached_sorted_docids.extend(documents.into_iter());
|
self.cached_sorted_docids.extend(documents);
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -228,7 +228,7 @@ impl<T> Ord for Interned<T> {
|
|||||||
|
|
||||||
impl<T> PartialOrd for Interned<T> {
|
impl<T> PartialOrd for Interned<T> {
|
||||||
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
|
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
|
||||||
self.idx.partial_cmp(&other.idx)
|
Some(self.cmp(other))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,7 +241,7 @@ impl<T> PartialEq for Interned<T> {
|
|||||||
}
|
}
|
||||||
impl<T> Clone for Interned<T> {
|
impl<T> Clone for Interned<T> {
|
||||||
fn clone(&self) -> Self {
|
fn clone(&self) -> Self {
|
||||||
Self { idx: self.idx, _phantom: PhantomData }
|
*self
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -607,7 +607,8 @@ fn check_sort_criteria(ctx: &SearchContext, sort_criteria: Option<&Vec<AscDesc>>
|
|||||||
field: field.to_string(),
|
field: field.to_string(),
|
||||||
valid_fields,
|
valid_fields,
|
||||||
hidden_fields,
|
hidden_fields,
|
||||||
})?;
|
}
|
||||||
|
.into());
|
||||||
}
|
}
|
||||||
Member::Geo(_) if !sortable_fields.contains("_geo") => {
|
Member::Geo(_) if !sortable_fields.contains("_geo") => {
|
||||||
let (valid_fields, hidden_fields) =
|
let (valid_fields, hidden_fields) =
|
||||||
@ -617,7 +618,8 @@ fn check_sort_criteria(ctx: &SearchContext, sort_criteria: Option<&Vec<AscDesc>>
|
|||||||
field: "_geo".to_string(),
|
field: "_geo".to_string(),
|
||||||
valid_fields,
|
valid_fields,
|
||||||
hidden_fields,
|
hidden_fields,
|
||||||
})?;
|
}
|
||||||
|
.into());
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,7 @@ impl QueryTermSubset {
|
|||||||
|
|
||||||
pub fn use_prefix_db(&self, ctx: &SearchContext) -> Option<Word> {
|
pub fn use_prefix_db(&self, ctx: &SearchContext) -> Option<Word> {
|
||||||
let original = ctx.term_interner.get(self.original);
|
let original = ctx.term_interner.get(self.original);
|
||||||
let Some(use_prefix_db) = original.zero_typo.use_prefix_db else { return None };
|
let use_prefix_db = original.zero_typo.use_prefix_db?;
|
||||||
let word = match &self.zero_typo_subset {
|
let word = match &self.zero_typo_subset {
|
||||||
NTypoTermSubset::All => Some(use_prefix_db),
|
NTypoTermSubset::All => Some(use_prefix_db),
|
||||||
NTypoTermSubset::Subset { words, phrases: _ } => {
|
NTypoTermSubset::Subset { words, phrases: _ } => {
|
||||||
|
@ -124,8 +124,7 @@ fn test_attribute_fid_simple() {
|
|||||||
s.query("the quick brown fox jumps over the lazy dog");
|
s.query("the quick brown fox jumps over the lazy dog");
|
||||||
s.scoring_strategy(crate::score_details::ScoringStrategy::Detailed);
|
s.scoring_strategy(crate::score_details::ScoringStrategy::Detailed);
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +141,6 @@ fn test_attribute_fid_ngrams() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
}
|
}
|
||||||
|
@ -141,8 +141,7 @@ fn test_attribute_position_simple() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
@ -158,8 +157,7 @@ fn test_attribute_position_repeated() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,8 +174,7 @@ fn test_attribute_position_different_fields() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,7 +191,6 @@ fn test_attribute_position_ngrams() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
}
|
}
|
||||||
|
@ -478,8 +478,7 @@ fn test_exactness_simple_ordered() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -511,8 +510,7 @@ fn test_exactness_simple_reversed() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -535,8 +533,7 @@ fn test_exactness_simple_reversed() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -566,8 +563,7 @@ fn test_exactness_simple_random() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -596,8 +592,7 @@ fn test_exactness_attribute_starts_with_simple() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -623,8 +618,7 @@ fn test_exactness_attribute_starts_with_phrase() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -644,8 +638,7 @@ fn test_exactness_attribute_starts_with_phrase() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -674,8 +667,7 @@ fn test_exactness_all_candidates_with_typo() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -711,8 +703,7 @@ fn test_exactness_after_words() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -760,8 +751,7 @@ fn test_words_after_exactness() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[19, 9, 18, 8, 17, 16, 6, 7, 15, 5, 14, 4, 13, 3, 12, 2, 1, 11]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[19, 9, 18, 8, 17, 16, 6, 7, 15, 5, 14, 4, 13, 3, 12, 2, 1, 11]");
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -809,8 +799,7 @@ fn test_proximity_after_exactness() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
|
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 1, 0, 4, 5, 8, 7, 3, 6]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 1, 0, 4, 5, 8, 7, 3, 6]");
|
||||||
@ -847,8 +836,7 @@ fn test_proximity_after_exactness() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[0, 1, 2]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[0, 1, 2]");
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -881,8 +869,7 @@ fn test_exactness_followed_by_typo_prefer_no_typo_prefix() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 1, 0, 4, 3]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[2, 1, 0, 4, 3]");
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
@ -917,8 +904,7 @@ fn test_typo_followed_by_exactness() {
|
|||||||
|
|
||||||
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
let SearchResult { documents_ids, document_scores, .. } = s.execute().unwrap();
|
||||||
|
|
||||||
let document_ids_scores: Vec<_> =
|
let document_ids_scores: Vec<_> = documents_ids.iter().zip(document_scores).collect();
|
||||||
documents_ids.iter().zip(document_scores.into_iter()).collect();
|
|
||||||
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
insta::assert_snapshot!(format!("{document_ids_scores:#?}"));
|
||||||
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[1, 0, 4, 3]");
|
insta::assert_snapshot!(format!("{documents_ids:?}"), @"[1, 0, 4, 3]");
|
||||||
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
let texts = collect_field_values(&index, &txn, "text", &documents_ids);
|
||||||
|
@ -146,7 +146,7 @@ impl<'i> FacetsUpdate<'i> {
|
|||||||
self.index.set_updated_at(wtxn, &OffsetDateTime::now_utc())?;
|
self.index.set_updated_at(wtxn, &OffsetDateTime::now_utc())?;
|
||||||
|
|
||||||
// See self::comparison_bench::benchmark_facet_indexing
|
// See self::comparison_bench::benchmark_facet_indexing
|
||||||
if self.delta_data.len() >= (self.database.len(wtxn)? as u64 / 50) {
|
if self.delta_data.len() >= (self.database.len(wtxn)? / 50) {
|
||||||
let field_ids =
|
let field_ids =
|
||||||
self.index.faceted_fields_ids(wtxn)?.iter().copied().collect::<Vec<_>>();
|
self.index.faceted_fields_ids(wtxn)?.iter().copied().collect::<Vec<_>>();
|
||||||
let bulk_update = FacetsUpdateBulk::new(
|
let bulk_update = FacetsUpdateBulk::new(
|
||||||
|
@ -309,8 +309,7 @@ fn tokens_from_document<'a>(
|
|||||||
// if a language has been detected for the token, we update the counter.
|
// if a language has been detected for the token, we update the counter.
|
||||||
if let Some(language) = token.language {
|
if let Some(language) = token.language {
|
||||||
let script = token.script;
|
let script = token.script;
|
||||||
let entry =
|
let entry = script_language_word_count.entry(script).or_default();
|
||||||
script_language_word_count.entry(script).or_insert_with(Vec::new);
|
|
||||||
match entry.iter_mut().find(|(l, _)| *l == language) {
|
match entry.iter_mut().find(|(l, _)| *l == language) {
|
||||||
Some((_, n)) => *n += 1,
|
Some((_, n)) => *n += 1,
|
||||||
None => entry.push((language, 1)),
|
None => entry.push((language, 1)),
|
||||||
|
Loading…
Reference in New Issue
Block a user