-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat: Implement keyword search in Qdrant #3099
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
base: main
Are you sure you want to change the base?
feat: Implement keyword search in Qdrant #3099
Conversation
cc: @franciscojavierarceo can you take a look please? |
results = ( | ||
await self.client.query_points( | ||
collection_name=self.collection_name, | ||
query_filter=models.Filter( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice, looks like this is the appropriate way to handle things https://qdrant.tech/documentation/concepts/filtering/#full-text-match
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you update vector_io/conftest.py
to test qdrant? I noticed earlier today that the fixture didn't have it enabled. See here:
@pytest.fixture(params=["milvus", "sqlite_vec", "faiss", "chroma"])
def vector_provider(request):
return request.param
5e318d0
to
af7f51d
Compare
Looking into fixing unit tests. |
be0d6d3
to
7da7ce9
Compare
7da7ce9
to
5e2d426
Compare
@franciscojavierarceo could you ptal ? |
4e5ac14
to
5ce1492
Compare
5ce1492
to
0d20d95
Compare
@ashwinb @franciscojavierarceo can we have some eyes on this to get this merged. Thanks! |
assert len(response_negative_threshold.chunks) > 0 | ||
|
||
|
||
async def test_query_chunks_keyword_search_edge_cases(qdrant_vec_index, sample_chunks, sample_embeddings): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this test actually needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see why we shouldn't have it. This is lightweight and only testing that a valid QueryChunksResponse
is returned without crashing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm intentionally not testing the return specifics, as that depends on the provider. But making sure that these values are at least accepted so that the input tests are at least robust.
0d20d95
to
49cbb4d
Compare
This commit implements keyword search in Qdrant. Signed-off-by: Varsha Prasad Narsing <[email protected]>
49cbb4d
to
21211e8
Compare
|
||
@pytest.fixture | ||
def qdrant_vec_db_path(tmp_path_factory): | ||
def qdrant_vec_db_path(tmp_path): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why change from tmp_path_factory
?
|
||
adapter.initialize = safe_initialize | ||
await adapter.initialize() | ||
await adapter.register_vector_db( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this no longer needed? definitely right thing to do but just want to confirm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
small nit on the tests but this looks good to me and it'd be good to unlock this for the community.
What does this PR do?
This PR implements keyword search in Qdrant.
Part of: #3009
Test Plan