From 6dcd694eade2d0fc7c84d5ba4c038cf8a4aff150 Mon Sep 17 00:00:00 2001 From: kanungle Date: Thu, 19 Feb 2026 13:35:34 -0800 Subject: [PATCH] updated filtering docs and course text --- .../essentials/day-1/chunking-strategies.md | 2 +- .../essentials/day-1/movie-search-system.md | 2 +- .../documentation/concepts/filtering.md | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/qdrant-landing/content/course/essentials/day-1/chunking-strategies.md b/qdrant-landing/content/course/essentials/day-1/chunking-strategies.md index bb1b09a4f..78026e5d9 100644 --- a/qdrant-landing/content/course/essentials/day-1/chunking-strategies.md +++ b/qdrant-landing/content/course/essentials/day-1/chunking-strategies.md @@ -54,7 +54,7 @@ This is where chunking comes in. The goal is to have chunks By breaking a document into focused chunks, each chunk gets its own vector that accurately represents a specific idea. This allows the search to be far more precise. -**Example:** Consider a multi-page Document like the [Qdrant Collection Configuration Guide of day 7](/course/essentials/day-7/collection-configuration-guide/) covering everything from HNSW to sharding and quantization. +**Example:** Consider a multi-page Document like the [Qdrant Collection Configuration Guide of Day 7](/course/essentials/day-7/collection-configuration-guide/) covering everything from HNSW to sharding and quantization. If a user asks: *"What does the m parameter do?"* diff --git a/qdrant-landing/content/course/essentials/day-1/movie-search-system.md b/qdrant-landing/content/course/essentials/day-1/movie-search-system.md index 16b6808c0..b092dfbe3 100644 --- a/qdrant-landing/content/course/essentials/day-1/movie-search-system.md +++ b/qdrant-landing/content/course/essentials/day-1/movie-search-system.md @@ -234,7 +234,7 @@ Query: 'alien invasion' ## Step 6: Advanced Features -Note: If you are already familiar Qdrant's filterable HNSW, you will know that effective filtering and grouping often relies on creating a [payload index](/documentation/concepts/indexing/#payload-index) before building HNSW indexes. To keep things simple in this tutorial, we will do a basic search with filters without payload indexes and talk about proper usage of payload indexes on [day 2](/content/course/essentials/day-2/_index.md) of this course. +Note: If you are already familiar Qdrant's filterable HNSW, you will know that effective filtering and grouping often relies on creating a [payload index](/documentation/concepts/indexing/#payload-index) before building HNSW indexes. To keep things simple in this tutorial, we will do a basic search with filters without payload indexes and talk about proper usage of payload indexes on [Day 2](/content/course/essentials/day-2/_index.md) of this course. ### Filtering by Metadata diff --git a/qdrant-landing/content/documentation/concepts/filtering.md b/qdrant-landing/content/documentation/concepts/filtering.md index 457b4fcfb..434387f07 100644 --- a/qdrant-landing/content/documentation/concepts/filtering.md +++ b/qdrant-landing/content/documentation/concepts/filtering.md @@ -40,6 +40,9 @@ Suppose we have a set of points with the following payload: ### Must +When using `must`, the clause becomes `true` only if every condition listed inside `must` is satisfied. +In this sense, `must` is equivalent to the operator `AND`. + Example: {{< code-snippet path="/documentation/headless/snippets/scroll-points/with-must-filter/" >}} @@ -50,11 +53,11 @@ Filtered points would be: [{ "id": 2, "city": "London", "color": "red" }] ``` -When using `must`, the clause becomes `true` only if every condition listed inside `must` is satisfied. -In this sense, `must` is equivalent to the operator `AND`. - ### Should +When using `should`, the clause becomes `true` if at least one condition listed inside `should` is satisfied. +In this sense, `should` is equivalent to the operator `OR`. + Example: {{< code-snippet path="/documentation/headless/snippets/scroll-points/with-should-filter/" >}} @@ -70,11 +73,11 @@ Filtered points would be: ] ``` -When using `should`, the clause becomes `true` if at least one condition listed inside `should` is satisfied. -In this sense, `should` is equivalent to the operator `OR`. - ### Must Not +When using `must_not`, the clause becomes `true` if none of the conditions listed inside `must_not` is satisfied. +In this sense, `must_not` is equivalent to the expression `(NOT A) AND (NOT B) AND (NOT C)`. + Example: {{< code-snippet path="/documentation/headless/snippets/scroll-points/with-must-not-filter/" >}} @@ -88,9 +91,6 @@ Filtered points would be: ] ``` -When using `must_not`, the clause becomes `true` if none of the conditions listed inside `must_not` is satisfied. -In this sense, `must_not` is equivalent to the expression `(NOT A) AND (NOT B) AND (NOT C)`. - ### Clauses combination It is also possible to use several clauses simultaneously: