updated filtering docs and course text

This commit is contained in:
kanungle
2026-02-19 13:35:34 -08:00
parent 3d8279f0a0
commit 6dcd694ead
3 changed files with 11 additions and 11 deletions
@@ -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?"*
@@ -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
@@ -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: