Test regenerate filter

This commit is contained in:
Mubelotix
2025-07-22 11:10:05 +02:00
parent 0014ed3114
commit 982e989886
2 changed files with 41 additions and 6 deletions

View File

@ -1151,3 +1151,39 @@ async fn vector_filter_or_combination() {
} }
"#); "#);
} }
#[actix_rt::test]
async fn vector_filter_regenerate() {
let index = shared_index_for_fragments().await;
for selector in ["_vectors.rest.regenerate", "_vectors.rest.fragments.basic.regenerate"] {
let (value, _code) = index
.search_post(json!({
"filter": format!("{selector} EXISTS"),
"attributesToRetrieve": ["name"]
}))
.await;
snapshot!(value, @r#"
{
"hits": [
{
"name": "kefir"
},
{
"name": "intel"
},
{
"name": "dustin"
}
],
"query": "",
"processingTimeMs": "[duration]",
"limit": 20,
"offset": 0,
"estimatedTotalHits": 3
}
"#);
}
}

View File

@ -92,7 +92,7 @@ impl VectorFilterInner<'_> {
if regenerate { if regenerate {
let skip_regenerate = embedder_info.embedding_status.skip_regenerate_docids(); let skip_regenerate = embedder_info.embedding_status.skip_regenerate_docids();
docids &= skip_regenerate; docids -= skip_regenerate;
} }
Ok(docids) Ok(docids)
@ -220,15 +220,14 @@ impl<'a> VectorFilter<'a> {
/// ///
/// Valid formats: /// Valid formats:
/// - `_vectors` /// - `_vectors`
/// - `_vectors.mustRegenerate`
/// - `_vectors.{embedder_name}` /// - `_vectors.{embedder_name}`
/// - `_vectors.{embedder_name}.mustRegenerate` /// - `_vectors.{embedder_name}.regenerate`
/// - `_vectors.{embedder_name}.userProvided` /// - `_vectors.{embedder_name}.userProvided`
/// - `_vectors.{embedder_name}.userProvided.mustRegenerate` /// - `_vectors.{embedder_name}.userProvided.regenerate`
/// - `_vectors.{embedder_name}.documentTemplate` /// - `_vectors.{embedder_name}.documentTemplate`
/// - `_vectors.{embedder_name}.documentTemplate.mustRegenerate` /// - `_vectors.{embedder_name}.documentTemplate.regenerate`
/// - `_vectors.{embedder_name}.fragments.{fragment_name}` /// - `_vectors.{embedder_name}.fragments.{fragment_name}`
/// - `_vectors.{embedder_name}.fragments.{fragment_name}.mustRegenerate` /// - `_vectors.{embedder_name}.fragments.{fragment_name}.regenerate`
pub(super) fn parse(s: &'a Token<'a>) -> Result<Self, VectorFilterError<'a>> { pub(super) fn parse(s: &'a Token<'a>) -> Result<Self, VectorFilterError<'a>> {
let mut split = s.split(".").peekable(); let mut split = s.split(".").peekable();