mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-07-27 00:31:02 +00:00
Test regenerate filter
This commit is contained in:
@ -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
|
||||||
|
}
|
||||||
|
"#);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user