diff --git a/content/develop/ai/redisvl/0.15.0/api/cache.md b/content/develop/ai/redisvl/0.15.0/api/cache.md
index 6132c9518d..77b5ba191a 100644
--- a/content/develop/ai/redisvl/0.15.0/api/cache.md
+++ b/content/develop/ai/redisvl/0.15.0/api/cache.md
@@ -115,8 +115,9 @@ Async drop specific entries from the cache by ID or Redis key.
* **Return type:**
None
-#### `NOTE`
+{{< note >}}
At least one of ids or keys must be provided.
+{{< /note >}}
* **Raises:**
**ValueError** – If neither ids nor keys is provided.
@@ -138,9 +139,10 @@ Asynchronously set or refresh the expiration time for a key in the cache.
* **Return type:**
None
-#### `NOTE`
+{{< note >}}
If neither the provided TTL nor the default TTL is set (both are None),
this method will have no effect.
+{{< /note >}}
#### `async astore(prompt, response, vector=None, metadata=None, filters=None, ttl=None)`
@@ -269,8 +271,9 @@ Drop specific entries from the cache by ID or Redis key.
* **Return type:**
None
-#### `NOTE`
+{{< note >}}
At least one of ids or keys must be provided.
+{{< /note >}}
* **Raises:**
**ValueError** – If neither ids nor keys is provided.
@@ -292,9 +295,10 @@ Set or refresh the expiration time for a key in the cache.
* **Return type:**
None
-#### `NOTE`
+{{< note >}}
If neither the provided TTL nor the default TTL is set (both are None),
this method will have no effect.
+{{< /note >}}
#### `set_threshold(distance_threshold)`
@@ -667,9 +671,10 @@ Asynchronously set or refresh the expiration time for a key in the cache.
* **Return type:**
None
-#### `NOTE`
+{{< note >}}
If neither the provided TTL nor the default TTL is set (both are None),
this method will have no effect.
+{{< /note >}}
#### `async aget(content, model_name)`
@@ -985,9 +990,10 @@ Set or refresh the expiration time for a key in the cache.
* **Return type:**
None
-#### `NOTE`
+{{< note >}}
If neither the provided TTL nor the default TTL is set (both are None),
this method will have no effect.
+{{< /note >}}
#### `get(content, model_name)`
diff --git a/content/develop/ai/redisvl/0.15.0/api/filter.md b/content/develop/ai/redisvl/0.15.0/api/filter.md
index 46a01b67de..b41f801891 100644
--- a/content/develop/ai/redisvl/0.15.0/api/filter.md
+++ b/content/develop/ai/redisvl/0.15.0/api/filter.md
@@ -44,9 +44,10 @@ v = VectorQuery(
)
```
-#### `NOTE`
+{{< note >}}
Filter expressions are typically not called directly. Instead they are
built by combining filter statements using the & and | operators.
+{{< /note >}}
* **Parameters:**
* **\_filter** (*str* *|* *None*)
diff --git a/content/develop/ai/redisvl/0.15.0/api/query.md b/content/develop/ai/redisvl/0.15.0/api/query.md
index a18239f500..4d11f660d7 100644
--- a/content/develop/ai/redisvl/0.15.0/api/query.md
+++ b/content/develop/ai/redisvl/0.15.0/api/query.md
@@ -81,8 +81,9 @@ expression.
* **Raises:**
**TypeError** – If filter_expression is not of type redisvl.query.FilterExpression
-#### `NOTE`
+{{< note >}}
Learn more about vector queries in Redis: [https://redis.io/docs/latest/develop/ai/search-and-query/vectors/#knn-vector-search](https://redis.io/docs/latest/develop/ai/search-and-query/vectors/#knn-vector-search)
+{{< /note >}}
#### `dialect(dialect)`
@@ -339,10 +340,11 @@ only the FIRST field is used for the Redis SORTBY clause.
>> query.sort_by([("price", "DESC"), ("rating", "ASC")])
```
-#### `NOTE`
+{{< note >}}
When multiple fields are specified, only the first field is used for sorting
in Redis. Future versions may support multi-field sorting through post-query
sorting in Python.
+{{< /note >}}
#### `timeout(timeout)`
@@ -455,8 +457,9 @@ Return the USE_SEARCH_HISTORY parameter for the query.
* **Return type:**
Optional[str]
-#### `NOTE`
+{{< note >}}
**Runtime Parameters for Performance Tuning**
+{{< /note >}}
VectorQuery supports runtime parameters for HNSW and SVS-VAMANA indexes that can be adjusted at query time without rebuilding the index:
@@ -569,8 +572,9 @@ distance threshold.
* **Raises:**
**TypeError** – If filter_expression is not of type redisvl.query.FilterExpression
-#### `NOTE`
+{{< note >}}
Learn more about vector range queries: [https://redis.io/docs/interact/search-and-query/search/vectors/#range-query](https://redis.io/docs/interact/search-and-query/search/vectors/#range-query)
+{{< /note >}}
#### `dialect(dialect)`
@@ -822,10 +826,11 @@ only the FIRST field is used for the Redis SORTBY clause.
>> query.sort_by([("price", "DESC"), ("rating", "ASC")])
```
-#### `NOTE`
+{{< note >}}
When multiple fields are specified, only the first field is used for sorting
in Redis. Future versions may support multi-field sorting through post-query
sorting in Python.
+{{< /note >}}
#### `timeout(timeout)`
@@ -938,8 +943,9 @@ Return the USE_SEARCH_HISTORY parameter for the query.
* **Return type:**
Optional[str]
-#### `NOTE`
+{{< note >}}
**Runtime Parameters for Range Queries**
+{{< /note >}}
VectorRangeQuery supports runtime parameters for controlling range search behavior:
@@ -1035,10 +1041,11 @@ Instantiates a AggregateHybridQuery object.
within the query text. Defaults to None, as no modifications will be made to the
text_scorer score.
-#### `NOTE`
+{{< note >}}
AggregateHybridQuery uses FT.AGGREGATE commands which do NOT support runtime
parameters. For runtime parameter support (ef_runtime, search_window_size, etc.),
use VectorQuery or VectorRangeQuery which use FT.SEARCH commands.
+{{< /note >}}
* **Raises:**
* **ValueError** – If the text string is empty, or if the text string becomes empty after
@@ -1260,16 +1267,19 @@ Get the text weights.
* **Return type:**
Dictionary of word
-#### `NOTE`
+{{< note >}}
The `stopwords` parameter in [AggregateHybridQuery](#aggregatehybridquery) (and `HybridQuery`) controls query-time stopword filtering (client-side).
For index-level stopwords configuration (server-side), see `redisvl.schema.IndexInfo.stopwords`.
Using query-time stopwords with index-level `STOPWORDS 0` is counterproductive.
+{{< /note >}}
-#### `NOTE`
+{{< note >}}
`HybridQuery` and [AggregateHybridQuery](#aggregatehybridquery) apply linear combination inconsistently. `HybridQuery` uses `linear_alpha` to weight the text score, while [AggregateHybridQuery](#aggregatehybridquery) uses `alpha` to weight the vector score. When switching between the two classes, take care to revise your `alpha` setting.
+{{< /note >}}
-#### `NOTE`
+{{< note >}}
**Runtime Parameters for Hybrid Queries**
+{{< /note >}}
**Important:** AggregateHybridQuery uses FT.AGGREGATE commands which do NOT support runtime parameters.
Runtime parameters (`ef_runtime`, `search_window_size`, `use_search_history`, `search_buffer_capacity`)
@@ -1327,8 +1337,9 @@ query = HybridQuery(
results = index.query(query)
```
-#### `SEE ALSO`
+{{< note >}}
- [FT.HYBRID command documentation](https://redis.io/docs/latest/commands/ft.hybrid)
+{{< /note >}}
- [redis-py hybrid_search documentation](https://redis.readthedocs.io/en/stable/redismodules.html#redis.commands.search.commands.SearchCommands.hybrid_search)
Instantiates a HybridQuery object.
@@ -1387,13 +1398,15 @@ Instantiates a HybridQuery object.
* **ValueError** – If vector_search_method is "KNN" and knn_k is not provided.
* **ValueError** – If vector_search_method is "RANGE" and range_radius is not provided.
-#### `NOTE`
+{{< note >}}
The `stopwords` parameter in [HybridQuery](#hybridquery) (and `AggregateHybridQuery`) controls query-time stopword filtering (client-side).
For index-level stopwords configuration (server-side), see `redisvl.schema.IndexInfo.stopwords`.
Using query-time stopwords with index-level `STOPWORDS 0` is counterproductive.
+{{< /note >}}
-#### `NOTE`
+{{< note >}}
[HybridQuery](#hybridquery) and `AggregateHybridQuery` apply linear combination inconsistently. [HybridQuery](#hybridquery) uses `linear_alpha` to weight the text score, while `AggregateHybridQuery` uses `alpha` to weight the vector score. When switching between the two classes, take care to revise your `alpha` setting.
+{{< /note >}}
## TextQuery
@@ -1663,10 +1676,11 @@ only the FIRST field is used for the Redis SORTBY clause.
>> query.sort_by([("price", "DESC"), ("rating", "ASC")])
```
-#### `NOTE`
+{{< note >}}
When multiple fields are specified, only the first field is used for sorting
in Redis. Future versions may support multi-field sorting through post-query
sorting in Python.
+{{< /note >}}
#### `timeout(timeout)`
@@ -1735,10 +1749,11 @@ Get the text weights.
* **Return type:**
Dictionary of word
-#### `NOTE`
+{{< note >}}
The `stopwords` parameter in [TextQuery](#textquery) controls query-time stopword filtering (client-side).
For index-level stopwords configuration (server-side), see `redisvl.schema.IndexInfo.stopwords`.
Using query-time stopwords with index-level `STOPWORDS 0` is counterproductive.
+{{< /note >}}
## FilterQuery
@@ -1943,10 +1958,11 @@ only the FIRST field is used for the Redis SORTBY clause.
>> query.sort_by([("price", "DESC"), ("rating", "ASC")])
```
-#### `NOTE`
+{{< note >}}
When multiple fields are specified, only the first field is used for sorting
in Redis. Future versions may support multi-field sorting through post-query
sorting in Python.
+{{< /note >}}
#### `timeout(timeout)`
@@ -2194,10 +2210,11 @@ only the FIRST field is used for the Redis SORTBY clause.
>> query.sort_by([("price", "DESC"), ("rating", "ASC")])
```
-#### `NOTE`
+{{< note >}}
When multiple fields are specified, only the first field is used for sorting
in Redis. Future versions may support multi-field sorting through post-query
sorting in Python.
+{{< /note >}}
#### `timeout(timeout)`
@@ -2507,9 +2524,10 @@ sql_query = SQLQuery('''
results = index.query(sql_query)
```
-#### `NOTE`
+{{< note >}}
Requires the optional sql-redis package. Install with:
`pip install redisvl[sql-redis]`
+{{< /note >}}
Initialize a SQLQuery.
@@ -2556,11 +2574,13 @@ print(redis_cmd)
# Output: FT.SEARCH products "@category:{electronics}"
```
-#### `NOTE`
+{{< note >}}
SQLQuery requires the optional `sql-redis` package. Install with:
`pip install redisvl[sql-redis]`
+{{< /note >}}
-#### `NOTE`
+{{< note >}}
SQLQuery translates SQL SELECT statements into Redis FT.SEARCH or FT.AGGREGATE commands.
The SQL syntax supports WHERE clauses, field selection, ordering, and parameterized queries
for vector similarity searches.
+{{< /note >}}
diff --git a/content/develop/ai/redisvl/0.15.0/api/schema.md b/content/develop/ai/redisvl/0.15.0/api/schema.md
index 3b2f5a94c4..a855b68da9 100644
--- a/content/develop/ai/redisvl/0.15.0/api/schema.md
+++ b/content/develop/ai/redisvl/0.15.0/api/schema.md
@@ -89,9 +89,10 @@ schema = IndexSchema.from_dict({
})
```
-#### `NOTE`
+{{< note >}}
The fields attribute in the schema must contain unique field names to ensure
correct and unambiguous field references.
+{{< /note >}}
Create a new model by parsing and validating input data from keyword arguments.
@@ -725,8 +726,9 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
- hnsw: Graph-based approximate search. Fast with high recall (95-99%). Best for general use.
- svs-vamana: SVS-VAMANA (Scalable Vector Search with VAMANA graph algorithm) provides fast approximate nearest neighbor search with optional compression support. This algorithm is optimized for Intel hardware and offers reduced memory usage through vector compression.
- #### NOTE
+ {{< note >}}
For detailed algorithm comparison and selection guidance, see [Vector Algorithm Comparison](#vector-algorithm-comparison).
+ {{< /note >}}
- datatype: Float precision (bfloat16, float16, float32, float64). Note: SVS-VAMANA only supports float16 and float32.
- distance_metric: Similarity metric (COSINE, L2, IP).
- initial_cap: Initial capacity hint for memory allocation (optional).
diff --git a/content/develop/ai/redisvl/0.15.0/api/searchindex.md b/content/develop/ai/redisvl/0.15.0/api/searchindex.md
index d7b8fdb249..4bb7b4ae56 100644
--- a/content/develop/ai/redisvl/0.15.0/api/searchindex.md
+++ b/content/develop/ai/redisvl/0.15.0/api/searchindex.md
@@ -390,13 +390,15 @@ for result_batch in index.paginate(query, page_size=10):
pass
```
-#### `NOTE`
+{{< note >}}
The page_size parameter controls the number of items each result
batch contains. Adjust this value based on performance
considerations and the expected volume of search results.
+{{< /note >}}
-#### `NOTE`
+{{< note >}}
For stable pagination, the query must have a sort_by clause.
+{{< /note >}}
#### `query(query)`
@@ -872,13 +874,15 @@ async for result_batch in index.paginate(query, page_size=10):
pass
```
-#### `NOTE`
+{{< note >}}
The page_size parameter controls the number of items each result
batch contains. Adjust this value based on performance
considerations and the expected volume of search results.
+{{< /note >}}
-#### `NOTE`
+{{< note >}}
For stable pagination, the query must have a sort_by clause.
+{{< /note >}}
#### `async query(query)`
diff --git a/content/develop/ai/redisvl/0.15.0/api/vectorizer.md b/content/develop/ai/redisvl/0.15.0/api/vectorizer.md
index c462f7655b..f06d33cb50 100644
--- a/content/develop/ai/redisvl/0.15.0/api/vectorizer.md
+++ b/content/develop/ai/redisvl/0.15.0/api/vectorizer.md
@@ -5,10 +5,11 @@ url: '/develop/ai/redisvl/0.15.0/api/vectorizer/'
---
-#### `NOTE`
+{{< note >}}
**Backwards Compatibility:** Several vectorizers have deprecated aliases
available in the `redisvl.utils.vectorize.text` module for backwards
compatibility:
+{{< /note >}}
- `VoyageAITextVectorizer` → Use `VoyageAIVectorizer` instead
- `VertexAITextVectorizer` → Use `VertexAIVectorizer` instead
@@ -41,11 +42,12 @@ Hugging Face’s vast collection of Sentence Transformers. These models are
trained on a variety of datasets and tasks, ensuring versatility and
robust performance across different embedding needs.
-#### `NOTE`
+{{< note >}}
Some multimodal models can make use of sentence-transformers by passing
PIL Image objects in place of strings (e.g. CLIP). To enable those use
cases, this class follows the SentenceTransformer convention of hinting
that it expects string inputs, but never enforcing it.
+{{< /note >}}
Requirements:
: - The sentence-transformers library must be installed with pip.
@@ -301,10 +303,11 @@ Return the type of vectorizer.
-#### `NOTE`
+{{< note >}}
For backwards compatibility, an alias `VertexAITextVectorizer` is available
in the `redisvl.utils.vectorize.text` module. This alias is deprecated
as of version 0.13.0 and will be removed in a future major release.
+{{< /note >}}
### `class VertexAIVectorizer(model='textembedding-gecko', api_config=None, dtype='float32', cache=None, *, dims=None)`
@@ -520,10 +523,11 @@ Return the type of vectorizer.
-#### `NOTE`
+{{< note >}}
For backwards compatibility, an alias `BedrockTextVectorizer` is available
in the `redisvl.utils.vectorize.text` module. This alias is deprecated
as of version 0.13.0 and will be removed in a future major release.
+{{< /note >}}
### `class BedrockVectorizer(model='amazon.titan-embed-text-v2:0', api_config=None, dtype='float32', cache=None, *, dims=None)`
@@ -632,10 +636,11 @@ Return the type of vectorizer.
-#### `NOTE`
+{{< note >}}
For backwards compatibility, an alias `CustomTextVectorizer` is available
in the `redisvl.utils.vectorize.text` module. This alias is deprecated
as of version 0.13.0 and will be removed in a future major release.
+{{< /note >}}
### `class CustomVectorizer(embed, embed_many=None, aembed=None, aembed_many=None, dtype='float32', cache=None)`
@@ -709,10 +714,11 @@ Return the type of vectorizer.
-#### `NOTE`
+{{< note >}}
For backwards compatibility, an alias `VoyageAITextVectorizer` is available
in the `redisvl.utils.vectorize.text` module. This alias is deprecated
as of version 0.13.0 and will be removed in a future major release.
+{{< /note >}}
### `class VoyageAIVectorizer(model='voyage-3-large', api_config=None, dtype='float32', cache=None, *, dims=None)`
diff --git a/content/develop/ai/redisvl/0.15.0/concepts/extensions.md b/content/develop/ai/redisvl/0.15.0/concepts/extensions.md
index 257f4ceed1..874cd7014a 100644
--- a/content/develop/ai/redisvl/0.15.0/concepts/extensions.md
+++ b/content/develop/ai/redisvl/0.15.0/concepts/extensions.md
@@ -49,8 +49,9 @@ The embeddings cache can wrap any [vectorizer]({{< relref "utilities" >}}), addi
LLMs are stateless. To have a conversation, you must include previous messages in each prompt. Message history manages this context, storing conversation turns and retrieving them when building prompts.
-#### NOTE
+{{< note >}}
`SessionManager` and `SemanticSessionManager` have been renamed to `MessageHistory` and `SemanticMessageHistory`. The old names are deprecated and will be removed in a future release.
+{{< /note >}}
### Storage Model
diff --git a/content/develop/ai/redisvl/0.15.0/concepts/queries.md b/content/develop/ai/redisvl/0.15.0/concepts/queries.md
index 397e20dd04..775c8fe6f5 100644
--- a/content/develop/ai/redisvl/0.15.0/concepts/queries.md
+++ b/content/develop/ai/redisvl/0.15.0/concepts/queries.md
@@ -130,8 +130,9 @@ results = index.query(query)
Use when neither pure keyword search nor pure semantic search gives good enough results. Common in RAG applications where you want both exact matches and semantic understanding.
-#### NOTE
+{{< note >}}
HybridQuery requires Redis >= 8.4.0 and redis-py >= 7.1.0.
+{{< /note >}}
### AggregateHybridQuery
@@ -179,8 +180,9 @@ results = index.query(query)
Use when your team is more comfortable with SQL syntax, or when integrating with tools that generate SQL.
-#### NOTE
+{{< note >}}
SQLQuery requires the optional `sql-redis` package. Install with: `pip install redisvl[sql-redis]`
+{{< /note >}}
## Choosing the Right Query