From b6dd1b0d4f6fb4592d93c4835accfe5d6532dfc1 Mon Sep 17 00:00:00 2001 From: kartik-gupta-ij Date: Fri, 28 Jun 2024 12:46:32 +0530 Subject: [PATCH] BLOG: Weaviate to Qdrant migration guide --- .../weaviate-to-qdrant-migration-guide.md | 420 ++++++++++++++++++ .../images.png | Bin 0 -> 2165 bytes .../points.png | Bin 0 -> 75288 bytes 3 files changed, 420 insertions(+) create mode 100644 qdrant-landing/content/blog/weaviate-to-qdrant-migration-guide.md create mode 100644 qdrant-landing/static/blog/weaviate-to-qdrant-migration-guide/images.png create mode 100644 qdrant-landing/static/blog/weaviate-to-qdrant-migration-guide/points.png diff --git a/qdrant-landing/content/blog/weaviate-to-qdrant-migration-guide.md b/qdrant-landing/content/blog/weaviate-to-qdrant-migration-guide.md new file mode 100644 index 000000000..2adde880d --- /dev/null +++ b/qdrant-landing/content/blog/weaviate-to-qdrant-migration-guide.md @@ -0,0 +1,420 @@ +--- +draft: false +title: "How to Migrate from Weaviate to Qdrant: A Step-by-Step Guide" +short_description: "How to Migrate From Weaviate to Qdrant" +description: "Discover the process of migrating from Weaviate to Qdrant. Enhance your AI application's performance and scalability with our comprehensive migration guide." +preview_image: /blog/weaviate-to-qdrant-migration-guide/images.png +date: 2024-06-27T00:04:00Z +author: Qdrant +featured: false +weight: 1006 +tags: + - Qdrant migration + - weaviate database + - qdrant vs weaviate + - qdrant vs weaviate comparison +--- + +Vector databases have become central to modern AI applications due to their ability to efficiently store, index, and query high-dimensional vectors. By converting data into vectors—numerical representations that capture the data's features or meaning—and storing them in vector databases, powerful applications can be built in various domains, from recommendation systems and image or video recognition to [DNA sequencing](https://www.sciencedirect.com/science/article/pii/S2001037023005214) and [anomaly detection](https://qdrant.tech/data-analysis-anomaly-detection/). Vector databases are particularly useful in building applications that leverage unstructured data, which accounts for nearly [80-90% of data in enterprises](https://mitsloan.mit.edu/ideas-made-to-matter/tapping-power-unstructured-data) and is growing at three times the rate of structured data. + +There are several vector database solutions available to developers today. However, not all vector databases are created equal. Each offers unique search and indexing features and differs from others in terms of performance, usage, deployment, customizability, and scalability options. Some vector databases excel in handling large-scale datasets with high query throughput, while others prioritize ease of use or provide pre-built integrations with existing systems. + +Two of the leading open-source vector databases currently available are Qdrant and Weaviate. Both provide flexibility in deployment, advanced similarity search metrics, and capabilities like hybrid search. Among open-source vector databases, [Qdrant](https://qdrant.tech/) consistently excels in performance [benchmarks](https://qdrant.tech/benchmarks/), offering the highest requests per second (RPS) and the lowest latency. These performance advantages, along with other features discussed below, make Qdrant the preferred choice for developers looking to leverage vector search for large-scale enterprise AI applications. + +In this article, we will examine both these solutions and explore some of the reasons why developers may choose Qdrant. Additionally, for those considering a migration from Weaviate to Qdrant, we will provide the steps to achieve this transition smoothly. + +## **Weaviate** + +Weaviate is an open-source vector database built in Go. It offers the key features that developers expect from vector databases, such as multiple similarity search metrics, hybrid search, flexible deployment options, and integration with many of the top frameworks. Weaviate supports horizontal scaling through sharding and replication. + +In Weaviate, the core data objects are stored in class-based collections that adhere to a schema. Each JSON-structured data object can incorporate an ID, properties, vectors, and other metadata. Properties are designed to hold data in various types such as text, integers, geo-coordinates, and objects. + +A unique aspect of Weaviate is that it offers internal modules like Vectorizers that generate vector embeddings, Rerankers to rank search results, and Generative Search for Retrieval-Augmented Generation (RAG) functionality. Weaviate also supports the GraphQL query language, in addition to RESTful APIs. + +## **Qdrant** + +Qdrant is an open-source vector database written in [Rust](https://qdrant.tech/articles/why-rust/), a language famed for its performance, memory efficiency, and the absence of a garbage collector. It is highly performant, and has the ability to handle large-scale datasets with billions of data points. Qdrant offers multiple [similarity search](https://qdrant.tech/documentation/concepts/search/) metrics, supports hybrid search, provides a range of deployment options including [Hybrid Cloud](https://qdrant.tech/hybrid-cloud/), and integrates with the top frameworks. Additionally, Qdrant supports both horizontal and vertical scaling. + +In Qdrant, vectors with additional JSON-structured payloads are called [points](https://qdrant.tech/documentation/concepts/points/). A named set of points is stored in a collection and can be searched through. The payload can store any JSON-formatted data, and can be used to filter search results. It offers [advanced search](https://qdrant.tech/documentation/concepts/explore/) capabilities to find similar or dissimilar vectors, or search based on positive and negative examples. + +Qdrant is highly customizable and scalable, and handles enterprise use cases particularly well. For instance, it has advanced [security](https://qdrant.tech/documentation/guides/security/) features such as support for JWT tokens, and enables developers to create fine-grained security layers through Role-Based Access Control (RBAC), a feature particularly useful in enterprise scenarios. It has support for vector [quantization](https://qdrant.tech/documentation/guides/quantization/), offers a number of [optimizers](https://qdrant.tech/documentation/concepts/optimizer/), and allows developers to configure the database according to their use case. Additionally, it provides an embedding library called [FastEmbed,](https://github.com/qdrant/fastembed) which provides support for various vector embedding models. + +## **Why Migrate from Weaviate to Qdrant** + +Both Weaviate and Qdrant offer a number of compelling features. However, some of Qdrant’s capabilities make it easier for developers to build enterprise applications. Here are some of the reasons why one might consider migrating from Weaviate to Qdrant: + +**Better Performance** + +Qdrant is highly performant. As [benchmarks](https://qdrant.tech/benchmarks/) show, Qdrant achieves the highest requests per second (RPS) and the lowest latency in almost all scenarios tested. It also achieves the highest RPS for filtered search due to the use of advanced query planning strategies. + +The benchmarks are [open-source](https://github.com/qdrant/vector-db-benchmark), and are updated on a regular basis. + +**Advanced Security Features** + +Qdrant supports granular access control using JSON Web Tokens (JWT) along with API and read-only API authentication. This allows you to implement [Role-Based Access Control (RBAC)](https://qdrant.tech/articles/data-privacy/), where you can define user permissions and restrict access to sensitive data. + +Qdrant also supports [TLS](https://qdrant.tech/documentation/guides/security/#tls) encryption of connections. + +**Flexible Deployment** + +Qdrant can be deployed locally using a single Docker command, and also offers a managed cloud option to developers. Additionally, Qdrant features [Hybrid Cloud](https://qdrant.tech/documentation/hybrid-cloud/), which integrates Kubernetes clusters from any setting—cloud, on-premises, or edge—into a unified managed service. It allows you to manage your database clusters via Qdrant Cloud’s UI while keeping all operations and resources within your network. Qdrant has a large number of partners for its Hybrid Cloud offering, such as AWS, Google Cloud, Azure, DigitalOcean, Linode, among others. + +**Advanced Search Features** + +Qdrant allows setting conditions for [filtering](https://qdrant.tech/documentation/concepts/filtering/) during searches, supporting complex criteria on payloads and point IDs. You can combine logical operations (AND, OR, NOT) into nested clauses for advanced, customizable search queries based on your specific specific requirements. + +For enhancing search performance, Qdrant also offers a variety of indexing methods: Dense Vector Index using HNSW, Sparse Vector Index for sparse vectors, Payload Indexing for fast payload-based filtering, Parametrized Indexing for fine-tuning integer filters, and Full-Text Indexing for text searches. + +## **How to Prepare for the Migration to Qdrant** + +Migrating from Weaviate to Qdrant might offer several advantages, particularly in scalability, higher performance, and in incorporating advanced search features. If you choose to migrate, we recommend the following initial steps: + +**Step 1**: First, familiarize yourself with the Qdrant ecosystem, including its [concepts](https://qdrant.tech/documentation/concepts/) and [APIs](https://api.qdrant.tech/api-reference). Learn how to create collections, add points, and perform queries. + +**Step 2**: Next, inspect the Weaviate collections, their schema, data objects, corresponding vectors, properties, and any associated metadata. + +Use the following code to do so: + +```python +client = weaviate.Client(url=os.getenv("WCD_URL"), + auth_client_secret= weaviate.auth.AuthApiKey(os.getenv("WCD_API_KEY"))) +client.schema.get() +``` +You need to have the following values in your .env file. + +WCD_URL: Weaviate Cloud URL + +WCD_API_KEY: Weaviate API Key + +To retrieve collection definitions from Weaviate, you can use the following: +```python +resp = client.collections.list_all(simple=False) +print(resp) + +``` + +To read the data objects, properties, and vectors, you can use this: + +```python +collection = client.collections.get("{Collection_Name}") + +for item in collection.iterator( + include_vector=True +): + print(item.properties) + print(item.vector) + +``` + +Create a parallel setup where you have integrated your application with Qdrant using a small subset of data in a test collection. + +**Step 3**: Keep your parallel setup with Qdrant ready for testing after the data migration is completed. This will allow you to test your application without disrupting ongoing operations on Weaviate. If the migration looks good, you can simply decide to switch off your previous stack. + +**Step 4**: Before you follow the steps below, ensure that you have stopped creating new collections or data objects, or modifying existing data in Weaviate. You can also create a backup of your Weaviate database to ensure you don’t lose any data in the process. + +## **Weaviate to Qdrant Migration Process** + +In Weaviate, data is stored as objects in JSON format, each with an ID (or UUID), properties, and vectors. Properties can hold information as key-value pairs in a dictionary format. + +Our approach will be to first export all data in a Weaviate collection to a JSON file. Once the export is complete, we can import the data into Qdrant in batches. + +This export function must account for multi-tenancy in the collection. If enabled, it will add tenant information to the properties dictionary, which will be imported as a payload into Qdrant for multi-tenancy support. + +For simplicity, we will assume that we will showcase the steps using Weaviate Cloud and [Qdrant Cloud](https://cloud.qdrant.io/) in the code below. + +First, let’s install the necessary libraries: + +```bash +pip install weaviate-client + +pip install qdrant-client + +``` + +### **Step 1: Export Data from Weaviate** + +Now, let’s write the export function. + +```python +import weaviate +import weaviate.classes as wvc +import os +import json + +def export_weaviate(collection_name, cluster_url, api_key, export_file): + """ + Export data from a Weaviate collection to a JSON file. + + Args: + - collection_name (str): The name of the collection to export. + - cluster_url (str): The URL of the Weaviate cluster. + - api_key (str): The API key for authentication. + - export_file (str): The path to the file where the data will be exported. + """ + + # Connect to the Weaviate cloud instance using the provided cluster URL and API key for authentication + client = weaviate.connect_to_weaviate_cloud( + cluster_url=cluster_url, + auth_credentials=weaviate.auth.AuthApiKey(api_key), + ) + + # Retrieve the collection object using the specified collection name + collection = client.collections.get(collection_name) + + # Initialize an empty list to store the data items + items_data = [] + + # Check if the collection has multi-tenancy enabled + if collection.config.get().multi_tenancy_config.enabled: + # Retrieve the list of tenants from the collection + tenants = collection.tenants.get() + + # Iterate over each tenant + for tenant in tenants: + # Iterate over each item in the collection for the current tenant, including vectors + for item in collection.with_tenant(tenant).iterator(include_vector=True): + # Create a dictionary with the item's properties, vector, and UUID + item_data = { + 'properties': {**item.properties, **{'tenant': tenant}}, # Merge properties with tenant info + 'vector': item.vector, # Include the item's vector + 'uuid': item.uuid.urn.replace('urn:uuid:', ''), # Extract and clean up the UUID + } + # Append the item data to the items_data list + items_data.append(item_data) + else: + # If multi-tenancy is not enabled, iterate over each item in the collection + for item in collection.iterator(include_vector=True): + # Create a dictionary with the item's properties, vector, and UUID + item_data = { + 'properties': item.properties, # Include the item's properties + 'vector': item.vector, # Include the item's vector + 'uuid': item.uuid.urn.replace('urn:uuid:', ''), # Extract and clean up the UUID + } + items_data.append(item_data) + + # Write the collected items data to the specified JSON file + with open(export_file, 'w') as json_file: + json.dump(items_data, json_file, indent=4) + +``` + +The above function will create a file that contains all the exported data from one specific collection in Weaviate. + +### **Step 2: Import Data into Qdrant** + +The following function imports the data into the Qdrant database. As discussed, we will use Qdrant Cloud for simplicity. + +```python +from qdrant_client import QdrantClient, models + +def import_qdrant(url, api_key, collection_name, exported_file, distance_metric): + """ + Import data into a Qdrant collection from a JSON file. + + Args: + - url (str): The URL of the Qdrant instance. + - api_key (str): The API key for authentication. + - collection_name (str): The name of the collection to import data into. + - exported_file (str): The path to the JSON file containing the exported data. + - distance_metric (str): The distance metric to use for the collection (e.g., 'cosine', 'dot', 'l2-squared', 'manhattan'). + """ + + # Open and load the JSON file containing the exported data + with open(exported_file, 'r') as json_file: + items_data = json.load(json_file) + + # Extract properties, vectors, and UUIDs from the loaded data + properties_list = [item['properties'] for item in items_data] + vector_default_list = [item['vector']['default'] for item in items_data] + uuid_list = [item['uuid'] for item in items_data] + + # Determine the dimensionality of the vectors + vector_dim = len(vector_default_list[0]) + + # Define a mapping from Weaviate distance metrics to Qdrant distance models + distance_mapping = { + 'cosine': models.Distance.COSINE, + 'dot': models.Distance.DOT, + 'l2-squared': models.Distance.EUCLID, + 'manhattan': models.Distance.MANHATTAN + } + + # Initialize the Qdrant client with the provided URL and API key + client = QdrantClient(url=url, api_key=api_key) + + # Recreate the collection with the specified configuration (vector size and distance metric) + client.recreate_collection( + collection_name=collection_name, + vectors_config=models.VectorParams(size=vector_dim, distance=distance_mapping.get(distance_metric)) + ) + + # Define the batch size for upserting data + batch_size = 1000 + + # Iterate over the data in batches and upsert into the collection + for i in range(0, len(uuid_list), batch_size): + # Slice the data into batches + batch_uuids = uuid_list[i:i + batch_size] + batch_properties = properties_list[i:i + batch_size] + batch_vectors = vector_default_list[i:i + batch_size] + + # Upsert the batch into the Qdrant collection (column-oriented) + client.upsert( + collection_name=collection_name, + points=models.Batch( + ids=batch_uuids, # The list of UUIDs for the batch + payloads=batch_properties, # The list of properties for the batch + vectors=batch_vectors, # The list of vectors for the batch + ), + ) + + +``` + +To migrate all the data from a Weaviate database to Qdrant, you can run the following code. Here, we will assume you have the following in your .env file: + +WCD_URL: Weaviate Cloud URL + +WCD_API_KEY: Weaviate API Key + +QDRANT_URL: Qdrant Cloud Cluster URL + +QDRANT_API_KEY: Qdrant Cloud API Key +```python +import os +import weaviate +from qdrant_client import QdrantClient, models + +# Connect to the Weaviate instance using environment variables for URL and API key +client = weaviate.Client( + url=os.getenv("WCD_URL"), + auth_client_secret=weaviate.auth.AuthApiKey(os.getenv("WCD_API_KEY")) +) + +# Create a list of dictionaries with collection name and distance metric +collection_info = [ + { + 'collection_name': schema['class'], + 'distance_metric': schema['vectorIndexConfig']['distance'] + } + for schema in client.schema.get()['classes'] +] + +# Iterate over each collection info dictionary +for info in collection_info: + # Generate the export file name based on the collection name + export_file_name = info['collection_name'] + '.json' + + # Export the collection data from Weaviate to a JSON file + export_weaviate( + collection_name=info['collection_name'], + cluster_url=os.getenv("WCD_URL"), + api_key=os.getenv("WCD_API_KEY"), + export_file=export_file_name + ) + + # Import the exported data into Qdrant + import_qdrant( + url=os.getenv("QDRANT_URL"), + api_key=os.getenv("QDRANT_API_KEY"), + collection_name=info['collection_name'], + exported_file=export_file_name, + distance_metric=info['distance_metric'] + ) +``` + +We can now check the Qdrant Cloud dashboard to verify the migration of the data. + +![Qdrant Cloud dashboard](/blog/weaviate-to-qdrant-migration-guide/points.png) + +## **Testing Your Data After Migration** + +After importing data into Qdrant, you can check the status of a collection, the vector count, dimensions, indexing, optimizer configuration, and other parameters. +```python +client.get_collection(collection_name="{collection_name}") +``` + +Additionally, you can use the [Scroll points](https://qdrant.tech/documentation/concepts/points/#scroll-points) API in Qdrant to inspect the vectors after migration. This will return all points (vectors) in a page-by-page manner, including the payload data. You can then inspect the data and cross-check it with the collections and data objects you have on Weaviate. + +To search for specific vectors using a filter and inspect them, you can use Qdrant’s filtered search. +```python +client.scroll( + collection_name="collection_name", + scroll_filter=models.Filter( + should=[ + models.FieldCondition( + key="key_value", + match=models.MatchText(text="sample_text"), + ), + ] + ) +) +``` + +The filter will return points that have the text ‘sample_text’ in the ‘key_value’ key of the payload. This method can be useful if you have a large dataset. + +## How to Troubleshoot Migration Issues + +During the migration process, there are a few things you need to watch out for: + +1. First, ensure that you have paused the creation of new data objects in the Weaviate collection before starting the migration. +2. Second, make sure that you are using the same similarity metric in Weaviate and Qdrant for that collection. +3. Weaviate uses JSON-structured data objects, where vectors are part of the schema. Qdrant also uses JSON-structured payloads, but vectors are stored separately. When the migration completes, compare the schema and data objects in the Weaviate collection with the payload in the Qdrant collection, while comparing the vectors separately. +4. If you have a large dataset and want to improve performance during the bulk upload of vectors into Qdrant, use the techniques described [here](https://qdrant.tech/documentation/tutorials/bulk-upload/). + +### Accessing Support Resources and Community Help + +To get help from the community, jump onto our [Discord](https://discord.com/invite/tdtYvXjC4h) channel. You can also browse through our [documentation](https://qdrant.tech/documentation/), [API Reference](https://api.qdrant.tech/master/api-reference), or [reach out](https://qdrant.tech/contact-us/) to our team. + +## **Final Words** + +Migrating from Weaviate to Qdrant can offer significant performance benefits, higher customizability, and advanced search features. By leveraging Qdrant, you can better tailor your vector search engine to your specific needs. + +To get started with Qdrant, sign up for [Qdrant Cloud](https://cloud.qdrant.io/) (or [Hybrid Cloud](https://qdrant.tech/hybrid-cloud/)), or [get in touch](https://qdrant.tech/contact-us/) with us today. + +References: + +- [Weaviate Documentation](https://weaviate.io/developers/weaviate) +- [Qdrant Documentation](https://qdrant.tech/documentation/) + +## **Frequently Asked Questions** + +**What are the main benefits of migrating from Weaviate to Qdrant?** + +Migrating from Weaviate to Qdrant offers several benefits, such as higher performance, advanced security features, and more flexibility. Qdrant consistently achieves higher requests per second (RPS) and lower latency in benchmarks. It supports advanced security features like Role-Based Access Control (RBAC) using JSON Web Tokens (JWT). Additionally, Qdrant offers flexible deployment options, including hybrid cloud setups, that allow you to manage database clusters across cloud, on-premises, and edge environments seamlessly. These benefits make Qdrant a powerful choice for enterprise-grade applications. + +**What prerequisites and preparations are needed before starting the migration?** + +Before starting the migration, ensure you are familiar with the Qdrant ecosystem. Inspect your Weaviate collections, including their schema, data objects, corresponding vectors, properties, and any associated metadata. + +Create a parallel setup in Qdrant similar to your Weaviate deployment. It is also advisable to create a backup of your Weaviate data to prevent any data loss. + +Before you start the data migration process, ensure that no new collections or data objects are being created in Weaviate. + +**What are the detailed steps involved in migrating from Weaviate to Qdrant?** + +The following are the steps involved in migrating from Weaviate to Qdrant: + +1. **Familiarize with Qdrant:** Understand Qdrant's APIs, how to create collections, add points, and perform queries. +2. **Set Up Qdrant:** Prepare your Qdrant environment. +3. **Export Data from Weaviate:** Use a script to export data objects, properties, and vectors from Weaviate to collection-specific JSON files. +4. **Import Data to Qdrant:** Use a script to import the exported JSON files into Qdrant collections. +5. **Test Migration:** Verify data integrity by comparing the imported data in Qdrant with the original data in Weaviate. +6. **Finalize Migration:** Once testing is successful, switch over to the new Qdrant setup and deprecate the Weaviate environment. + +**How can I ensure data integrity and minimal downtime during the migration?** + +To ensure data integrity, pause any new data creation or modification in Weaviate during the migration. Perform a thorough verification of the exported and imported data by comparing schemas, data objects, and vectors. Use parallel setups to test the Qdrant environment without disrupting ongoing operations in Weaviate. Implement batch processing during the import phase to handle large datasets efficiently and minimize downtime. + +**What common issues might arise during the migration, and how can they be resolved?** + +Common issues include mismatches in schema or vector data, performance bottlenecks during bulk uploads, difference in cluster configurations, and discrepancies in similarity metrics. To resolve these: + +- **Schema Mismatches:** Ensure both Weaviate and Qdrant use compatible schemas and data structures. +- **Performance Bottlenecks:** Use Qdrant’s batch processing capabilities and optimize the import script for efficiency. +- **Metric Discrepancies:** Align similarity metrics used in both databases to ensure consistent search results post-migration. +- **Cluster Setup Differences**: There are performance differences in both the vector databases. Setup your initial cluster to reflect what you have in Weaviate, and then optimize it further for Qdrant. + +**Where can I find additional resources and support for using Qdrant?** + +For additional resources and support, you can refer to the [Qdrant Documentation](https://qdrant.tech/documentation/) and [Weaviate Documentation](https://weaviate.io/developers/weaviate). You can also join the Qdrant community on platforms like [Discord](https://discord.com/invite/tdtYvXjC4h), or browse through the [Qdrant GitHub repository](https://github.com/qdrant) for examples and support. If needed, you can reach out to the Qdrant team for professional assistance and support. diff --git a/qdrant-landing/static/blog/weaviate-to-qdrant-migration-guide/images.png b/qdrant-landing/static/blog/weaviate-to-qdrant-migration-guide/images.png new file mode 100644 index 0000000000000000000000000000000000000000..07c1fe12039a9f21fd031d1b45c059954f801862 GIT binary patch literal 2165 zcmbW3dpOe#8^>4ECjB&F+N4^z9BXECSWYiBho+ixm>5mSspe1;B{8Q&%HuF+AtdyW zL&M}4YKg~~Q%;xS5i-YRve)zc^S*yQ?{&TZ-1qmsuKW7l|9r3Ob3d}WXf7@$D+U6A z#Lrm}E`vaOz`MFt^sgGiCR28sjn#P@Q!bagD}_Sg#KZ)NL>e9*=5RPnCX>Zt@p!zo zwY8l5ln3EW-Vs>&@#x~s-qS;03bsC0aUxP_4bxC-12_D@}6*m}3s;{=w$0F_z zufL`2^KQ*2ZMJ^eysrz@-z`j)&dix70alI(qnFTB zGk)XEDF`H_f@FiojvViL_kz?IZW5#vDvUi4M5A=2*Q!2Q4><_o@ObWqY~1qOYZ~9d zMz0fZgTYs`p2x*(p0Sj-TorL)`|m_Av)Y1PLvkZcq|Ey&-ndX-r0dipYgQ4h`mK59 z@ava#bfSt~tePZdw-Uy4Z~7mt)@FWg&0`>1!f`phc48VFS{a1YmUpO7X;L*jYqsk# zM}!4$sdz9g30~<*j%MP0K_?s~wZ5Ka5$Cm@4<&xOzW8PXEt56`_uSa~?PK}EJ+Drz zBAaRH(p8QS2p1$__u>ZtRPI62_LxN^8t=1Y~PY>5X^2xjUe1j zAuciOlu?noEvac3x#L#`u&qr4^80A+o>gv&)yXu@yViybqrH7ZQ?y4JCEnhvM#2`U zRV^TPYQ`5%O|Mk-IT6RFX@pG+`x@Y$1Fwi>s_uF`rnD63I+*|T6{;G2vez%Eu2vB5 z)Rx!Tz)UNfw7p-&3-*P$6(<{ap7$ePS<-x)zUPr&%Lk4{xzQo8@>lS@MV`JUV*$F9 z8o%%n#nP3fNKc)NfakAjO%Fb@@-y406eVLYtRGT=Rr$ZCcoJ&$mK=uC!uN~4lu|i7 zGxsb}!{+h<&KeP7)=?m5t?sIGjp`Y1YTZwMatf=gqBQU=*B^SXF3#jwXsGg7vK=Oa zkqm9bc_jxdyok;Ep3HMZ&P4Vd?dcXX1g2dp-Zy(@Ff||SQ%HH-x~`xoFoSrSuSURq zBbR2%dyi+GW0K6H7#s43z4y^qk~=wK<&oO=-E~#?&MLoPzPCKmDJ|07qg~V%;-zKy ze7Nv}dTR|ZSRJK~1O|}O{f1Kv=fsrHH?x0qP+Q`P%t{C7`SOwZjPp&2B5=K?H_;|+ zC$A2A#c4FvQZ?w*sklNWPAt|WOGEE!=dLIIEYX=#$^o0GMd)U2Kiqyl)37pUmW87m zL1D1ap1frpE$u&Cg_Q@v*c7GdV1R7sPE%|t_G=2@@7-GpH8Mu5R8Uc~HsyJ#-VGSOSVWS@@29K#kn-0wL-5+@}ocQ-f> zY6C>FwnI9>&Sz&bKFLwe)EKD8hCW{=dXhEmtFWnN-kK^(Tzwk_Xd^1qi4t&8GwmfS z;Ks>k^6EchV}=87EOdEzqXW2ed@sh5RucMs^nRGav)2nVi5}e-?fGsIBx9)0Xk}?H z|Ll#B!MHifcmm75fl$k>Uv(R~hZRS+mvGn)5fa(58g-5z@(x|VBNOB$JAN?T*baLX z66^unITwKy5dxFO{RNn1Pe>5ImwR*#1IdntP1s`An0LeE{|_8V{B8G-Kx23;`)ffo ztRer(aa9l0e#up(`vwX5qqi)>ai1Wbk69)h5kC;Ct^?vzhxchDWtQb9O w@lI%T3WLucZ<0IXtJuGf?i%;s3>AXkxTlmwN8Cj1J`bRCrWXknXQ&bX1{hTHWB>pF literal 0 HcmV?d00001 diff --git a/qdrant-landing/static/blog/weaviate-to-qdrant-migration-guide/points.png b/qdrant-landing/static/blog/weaviate-to-qdrant-migration-guide/points.png new file mode 100644 index 0000000000000000000000000000000000000000..6b903f391c043434d564347d999c5649d5b4be2f GIT binary patch literal 75288 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 literal 0 HcmV?d00001