Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for hybrid search in Azure AI vector store #2408

Merged
merged 3 commits into from
Mar 20, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
update param name
Dev-Khant committed Mar 20, 2025
commit 75c4ff0bf767859c304ef4d2878c16198bd71908
4 changes: 2 additions & 2 deletions docs/components/vectordbs/dbs/azure_ai_search.mdx
Original file line number Diff line number Diff line change
@@ -61,7 +61,7 @@ config = {
"api_key": "*****",
"collection_name": "mem0",
"embedding_model_dims": 1536,
"use_hybrid_search": True,
"hybrid_search": True,
"vector_filter_mode": "postFilter"
}
}
@@ -79,7 +79,7 @@ config = {
| `compression_type` | Type of vector compression to use | `none` | `none`, `scalar`, `binary` |
| `use_float16` | Store vectors in half precision (Edm.Half) | `False` | `True`, `False` |
| `vector_filter_mode` | Vector filter mode to use | `preFilter` | `postFilter`, `preFilter` |
| `use_hybrid_search` | Use hybrid search | `False` | `True`, `False` |
| `hybrid_search` | Use hybrid search | `False` | `True`, `False` |

## Notes on Configuration Options

2 changes: 1 addition & 1 deletion mem0/configs/vector_stores/azure_ai_search.py
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ class AzureAISearchConfig(BaseModel):
False,
description="Whether to store vectors in half precision (Edm.Half) instead of full precision (Edm.Single)",
)
use_hybrid_search: bool = Field(
hybrid_search: bool = Field(
False, description="Whether to use hybrid search. If True, vector_filter_mode must be 'preFilter'"
)
vector_filter_mode: Optional[str] = Field(
6 changes: 3 additions & 3 deletions mem0/vector_stores/azure_ai_search.py
Original file line number Diff line number Diff line change
@@ -47,7 +47,7 @@ def __init__(
embedding_model_dims,
compression_type: Optional[str] = None,
use_float16: bool = False,
use_hybrid_search: bool = False,
hybrid_search: bool = False,
vector_filter_mode: Optional[str] = None,
):
"""
@@ -62,7 +62,7 @@ def __init__(
Allowed values are None (no quantization), "scalar", or "binary".
use_float16 (bool): Whether to store vectors in half precision (Edm.Half) or full precision (Edm.Single).
(Note: This flag is preserved from the initial implementation per feedback.)
use_hybrid_search (bool): Whether to use hybrid search. Default is False.
hybrid_search (bool): Whether to use hybrid search. Default is False.
vector_filter_mode (Optional[str]): Mode for vector filtering. Default is "preFilter".
"""
self.index_name = collection_name
@@ -210,7 +210,7 @@ def search(self, query, vectors, limit=5, filters=None):
filter_expression = self._build_filter_expression(filters)

vector_query = VectorizedQuery(vector=vectors, k_nearest_neighbors=limit, fields="vector")
if self.use_hybrid_search:
if self.hybrid_search:
search_results = self.search_client.search(
search_text=query,
vector_queries=[vector_query],