596: Filter operators: NOT + IN[..] r=irevoire a=loiclec

# Pull Request

## What does this PR do?
Implements the changes described in https://github.com/meilisearch/meilisearch/issues/2580
It is based on top of #556 

Co-authored-by: Loïc Lecrenier <loic@meilisearch.com>
This commit is contained in:
bors[bot] 2022-08-18 11:24:32 +00:00 committed by GitHub
commit afc10acd19
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 686 additions and 549 deletions

View file

@ -744,10 +744,9 @@ async fn main() -> anyhow::Result<()> {
};
let condition = match (filters, facet_filters) {
(Some(filters), Some(facet_filters)) => Some(FilterCondition::And(
Box::new(filters.into()),
Box::new(facet_filters.into()),
)),
(Some(filters), Some(facet_filters)) => {
Some(FilterCondition::And(vec![filters.into(), facet_filters.into()]))
}
(Some(condition), None) | (None, Some(condition)) => Some(condition.into()),
_otherwise => None,
};