QdrantDocumentStore
Use the Qdrant vector database with Haystack.
Qdrant is a powerful high-performance, massive-scale vector database. The QdrantDocumentStore can be used with any Qdrant instance, in-memory, locally persisted, hosted, and the official Qdrant Cloud.
Installation
You can simply install the Qdrant Haystack integration with:
pip install qdrant-haystack
Initialization
The quickest way to use QdrantDocumentStore is to create an in-memory instance of it:
from haystack.dataclasses.document import Document
from haystack_integrations.document_stores.qdrant import QdrantDocumentStore
document_store = QdrantDocumentStore(
":memory:",
recreate_index=True,
return_embedding=True,
wait_result_from_api=True,
)
document_store.write_documents([
Document(content="This is first", embedding=[0.0]*5),
Document(content="This is second", embedding=[0.1, 0.2, 0.3, 0.4, 0.5])
])
print(document_store.count_documents())
You can also connect directly to Qdrant Cloud directly. Once you have your API key and your cluster URL from the Qdrant dashboard, you can connect like this:
from haystack.dataclasses.document import Document
from haystack_integrations.document_stores.qdrant import QdrantDocumentStore
document_store = QdrantDocumentStore(
url="https://xxxxxx-xxxxx-xxxxx-xxxx-xxxxxxxxx.us-east.aws.cloud.qdrant.io:6333",
api_key="<your-api-key>",
)
document_store.write_documents([
Document(content="This is first", embedding=[0.0]*5),
Document(content="This is second", embedding=[0.1, 0.2, 0.3, 0.4, 0.5])
])
print(document_store.count_documents())
More information
You can find more ways to initialize and use QdrantDocumentStore on our integration page.
Supported Retrievers
QdrantEmbeddingRetriever: Retrieves documents from theQdrantDocumentStorebased on their dense embeddings (vectors).QdrantSparseEmbeddingRetriever: Retrieves documents from theQdrantDocumentStorebased on their sparse embeddings.QdrantHybridRetriever: Retrieves documents from theQdrantDocumentStorebased on both dense and sparse embeddings.
Sparse Embedding Support
To use Sparse Embedding support, you need to initialize the
QdrantDocumentStorewithuse_sparse_embeddings=True, which isFalseby default.If you want to use Document Store or collection previously created with this feature disabled, you must migrate the existing data. You can do this by taking advantage of the
migrate_to_sparse_embeddings_supportutility function.
Updated over 1 year ago
