-
Notifications
You must be signed in to change notification settings - Fork 123
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4,600 changed files
with
660,024 additions
and
0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"codeList":[],"headingContent":"Comparing Milvus with Alternatives","anchorList":[{"label":"Comparing Milvus with Alternatives","href":"Comparing-Milvus-with-Alternatives","type":1,"isActive":false},{"label":"Milvus highlights","href":"Milvus-highlights","type":2,"isActive":false},{"label":"Overall comparison","href":"Overall-comparison","type":2,"isActive":false},{"label":"Terminology comparison","href":"Terminology-comparison","type":2,"isActive":false},{"label":"Capability comparison","href":"Capability-comparison","type":2,"isActive":false},{"label":"What's next","href":"Whats-next","type":2,"isActive":false}]} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
--- | ||
id: comparison.md | ||
title: Comparison | ||
summary: This article compares Milvus with other vector search solutions. | ||
--- | ||
<h1 id="Comparing-Milvus-with-Alternatives" class="common-anchor-header">Comparing Milvus with Alternatives<button data-href="#Comparing-Milvus-with-Alternatives" class="anchor-icon" translate="no"> | ||
<svg translate="no" | ||
aria-hidden="true" | ||
focusable="false" | ||
height="20" | ||
version="1.1" | ||
viewBox="0 0 16 16" | ||
width="16" | ||
> | ||
<path | ||
fill="#0092E4" | ||
fill-rule="evenodd" | ||
d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" | ||
></path> | ||
</svg> | ||
</button></h1><p>When exploring various vector database options, this comprehensive guide will help you understand Milvus’s unique features, ensuring you choose a database that best fits your specific needs. Notably, Milvus is a leading open-source vector database, and <a href="https://zilliz.com/cloud">Zilliz Cloud</a> offers a fully-managed Milvus service. To objectively evaluate Milvus against its competitors, consider using <a href="https://github.com/zilliztech/VectorDBBench#quick-start">benchmark tools</a> to analyze performance metrics.</p> | ||
<h2 id="Milvus-highlights" class="common-anchor-header">Milvus highlights<button data-href="#Milvus-highlights" class="anchor-icon" translate="no"> | ||
<svg translate="no" | ||
aria-hidden="true" | ||
focusable="false" | ||
height="20" | ||
version="1.1" | ||
viewBox="0 0 16 16" | ||
width="16" | ||
> | ||
<path | ||
fill="#0092E4" | ||
fill-rule="evenodd" | ||
d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" | ||
></path> | ||
</svg> | ||
</button></h2><ul> | ||
<li><p><strong>Functionality</strong>: Milvus goes beyond basic vector similarity search by supporting advanced functionalities like <a href="https://milvus.io/docs/sparse_vector.md">sparse vector</a>, <a href="https://milvus.io/docs/single-vector-search.md#Bulk-vector-search">bulk-vector</a>, <a href="https://milvus.io/docs/single-vector-search.md#Filtered-search">filtered search</a>, and <a href="https://milvus.io/docs/multi-vector-search.md">hybrid search</a> capabilities.</p></li> | ||
<li><p><strong>Flexibility</strong>: Milvus accommodates various deployment modes and multiple SDKs, all within a robust, integrated ecosystem.</p></li> | ||
<li><p><strong>Performance</strong>: Milvus guarantees real-time processing with high throughput and low latency, powered by optimized indexing algorithms such as <a href="https://milvus.io/docs/index.md#HNSW">HNSW</a> and <a href="https://milvus.io/docs/disk_index.md">DiskANN</a>, and advanced <a href="https://milvus.io/docs/gpu_index.md">GPU acceleration</a>.</p></li> | ||
<li><p><strong>Scalability</strong>: Its bespoke distributed architecture effortlessly scales, accommodating anything from small datasets to collections exceeding 10 billion vectors.</p></li> | ||
</ul> | ||
<h2 id="Overall-comparison" class="common-anchor-header">Overall comparison<button data-href="#Overall-comparison" class="anchor-icon" translate="no"> | ||
<svg translate="no" | ||
aria-hidden="true" | ||
focusable="false" | ||
height="20" | ||
version="1.1" | ||
viewBox="0 0 16 16" | ||
width="16" | ||
> | ||
<path | ||
fill="#0092E4" | ||
fill-rule="evenodd" | ||
d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" | ||
></path> | ||
</svg> | ||
</button></h2><p>To compare between Milvus and Pinecone, two vector database solutions, the following table is structured to highlight differences across various features.</p> | ||
<table> | ||
<thead> | ||
<tr><th>Feature</th><th>Pinecone</th><th>Milvus</th><th>Remarks</th></tr> | ||
</thead> | ||
<tbody> | ||
<tr><td>Deployment Modes</td><td>SaaS-only</td><td>Milvus Lite, On-prem Standalone & Cluster, Zilliz Cloud Saas & BYOC</td><td>Milvus offers greater flexibility in deployment modes.</td></tr> | ||
<tr><td>Supported SDKs</td><td>Python, JavaScript/TypeScript</td><td>Python, Java, NodeJS, Go, Restful API, C#, Rust</td><td>Milvus supports a wider array of programming languages.</td></tr> | ||
<tr><td>Open-source Status</td><td>Closed</td><td>Open-source</td><td>Milvus is a popular open-source vector database.</td></tr> | ||
<tr><td>Scalability</td><td>Scale up/down only</td><td>Scale out/in and Scale up/down</td><td>Milvus features a distributed architecture for enhanced scalability.</td></tr> | ||
<tr><td>Availability</td><td>Pod-based architecture within available zones</td><td>Available zone failover and cross-region HA</td><td>Milvus CDC (Change Data Capture) enables primary/standby modes for higher availability.</td></tr> | ||
<tr><td>Perf-Cost (Dollar per million queries)</td><td>Starts at $0.178 for a medium dataset, $1.222 for a large dataset</td><td>Zilliz Cloud starts at $0.148 for a medium dataset, $0.635 for a large dataset; free version available</td><td>Refer to <a href="https://zilliz.com/vector-database-benchmark-tool?database=ZillizCloud,Milvus,ElasticCloud,PgVector,Pinecone,QdrantCloud,WeaviateCloud&dataset=medium&filter=none,low,high&tab=2">Cost Ranking report</a>.</td></tr> | ||
<tr><td>GPU Acceleration</td><td>Not supported</td><td>Support NVIDIA GPU</td><td>GPU acceleration significantly enhances performance, often by orders of magnitude.</td></tr> | ||
</tbody> | ||
</table> | ||
<h2 id="Terminology-comparison" class="common-anchor-header">Terminology comparison<button data-href="#Terminology-comparison" class="anchor-icon" translate="no"> | ||
<svg translate="no" | ||
aria-hidden="true" | ||
focusable="false" | ||
height="20" | ||
version="1.1" | ||
viewBox="0 0 16 16" | ||
width="16" | ||
> | ||
<path | ||
fill="#0092E4" | ||
fill-rule="evenodd" | ||
d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" | ||
></path> | ||
</svg> | ||
</button></h2><p>Although both serve similar functions as vector databases, the domain-specific terminology between Milvus and Pinecone shows slight variations. A detailed terminology comparison is as follows.</p> | ||
<table> | ||
<thead> | ||
<tr><th>Pinecone</th><th>Milvus</th><th>Remarks</th></tr> | ||
</thead> | ||
<tbody> | ||
<tr><td>Index</td><td><a href="https://zilliz.com/comparison">Collection</a></td><td>In Pinecone, an index serves as the organizational unit for storing and managing vectors of identical size, and this index is closely integrated with the hardware, known as pods. In contrast, Milvus collections serve a similar purpose but enable handling multiple collections within a single instance.</td></tr> | ||
<tr><td>Collection</td><td><a href="https://milvus.io/docs/milvus_backup_overview.md#Milvus-Backup">Backup</a></td><td>In Pinecone, a collection is essentially a static snapshot of an index, used mainly for backup purposes and cannot be queried. In Milvus, the equivalent feature for creating backups is more transparent and straightforwardly named.</td></tr> | ||
<tr><td>Namespace</td><td><a href="https://milvus.io/docs/use-partition-key.md#Use-Partition-Key">Partition key</a></td><td>Namespaces allow the partitioning of vectors in an index into subsets. Milvus provides multiple methods like partition or partition key to ensure efficient data isolation within a collection.</td></tr> | ||
<tr><td>Metadata</td><td><a href="https://milvus.io/docs/boolean.md">Scalar field</a></td><td>Pinecone’s metadata handling relies on key-value pairs, while Milvus allows for complex scalar fields, including standard data types and dynamic JSON fields.</td></tr> | ||
<tr><td>Query</td><td><a href="https://milvus.io/docs/single-vector-search.md">Search</a></td><td>Name of the method used to find the nearest neighbors for a given vector, possibly with some additional filters applied on top.</td></tr> | ||
<tr><td>Not available</td><td><a href="https://milvus.io/docs/with-iterators.md">Iterator</a></td><td>Pinecone lacks a feature for iterating through all vectors in an index. Milvus introduces Search Iterator and Query Iterator methods, enhancing data retrieval capabilities across datasets.</td></tr> | ||
</tbody> | ||
</table> | ||
<h2 id="Capability-comparison" class="common-anchor-header">Capability comparison<button data-href="#Capability-comparison" class="anchor-icon" translate="no"> | ||
<svg translate="no" | ||
aria-hidden="true" | ||
focusable="false" | ||
height="20" | ||
version="1.1" | ||
viewBox="0 0 16 16" | ||
width="16" | ||
> | ||
<path | ||
fill="#0092E4" | ||
fill-rule="evenodd" | ||
d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" | ||
></path> | ||
</svg> | ||
</button></h2><table> | ||
<thead> | ||
<tr><th>Capability</th><th>Pinecone</th><th>Milvus</th></tr> | ||
</thead> | ||
<tbody> | ||
<tr><td>Deployment Modes</td><td>SaaS-only</td><td>Milvus Lite, On-prem Standalone & Cluster, Zilliz Cloud Saas & BYOC</td></tr> | ||
<tr><td>Embedding Functions</td><td>Not available</td><td>Support with <a href="https://github.com/milvus-io/milvus-model">pymilvus[model]</a></td></tr> | ||
<tr><td>Data Types</td><td>String, Number, Bool, List of String</td><td>String, VarChar, Number (Int, Float, Double), Bool, Array, JSON, Float Vector, Binary Vector, BFloat16, Float16, Sparse Vector</td></tr> | ||
<tr><td>Metric and Index Types</td><td>Cos, Dot, Euclidean<br/>P-family, S-family</td><td>Cosine, IP (Dot), L2 (Euclidean), Hamming, Jaccard<br/>FLAT, IVF_FLAT, IVF_SQ8, IVF_PQ, HNSW, SCANN, GPU Indexes</td></tr> | ||
<tr><td>Schema Design</td><td>Flexible mode</td><td>Flexible mode, Strict mode</td></tr> | ||
<tr><td>Multiple Vector Fields</td><td>N/A</td><td>Multi-vector and hybrid search</td></tr> | ||
<tr><td>Tools</td><td>Datasets, text utilities, spark connector</td><td>Attu, Birdwatcher, Backup, CLI, CDC, Spark and Kafka connectors</td></tr> | ||
</tbody> | ||
</table> | ||
<h3 id="Key-insights" class="common-anchor-header">Key insights</h3><ul> | ||
<li><p><strong>Deployment modes</strong>: Milvus offers a variety of deployment options, including local deployment, Docker, Kubernetes on-premises, Cloud SaaS, and Bring Your Own Cloud (BYOC) for enterprises, whereas Pinecone is limited to SaaS deployment.</p></li> | ||
<li><p><strong>Embedding functions</strong>: Milvus supports additional embedding libraries, enabling the direct use of embedding models to transform source data into vectors.</p></li> | ||
<li><p><strong>Data types</strong>: Milvus supports a wider range of data types than Pinecone, including arrays and JSON. Pinecone supports only a flat metadata structure with strings, numbers, booleans, or lists of strings as values, whereas Milvus can handle any JSON object, including nested structures, within a JSON field. Pinecone limits the metadata size to 40KB per vector.</p></li> | ||
<li><p><strong>Metric and index types</strong>: Milvus supports a broad selection of metric and index types to accommodate various use cases, while Pinecone has a more limited selection. While an index for vector is mandatory in Milvus, an AUTO_INDEX option is available to streamline the configuration process.</p></li> | ||
<li><p><strong>Schema design</strong>: Milvus offers flexible <code translate="no">create_collection</code> modes for schema design, including a quick setup with a dynamic schema for a schema-less experience similar to Pinecone and a customized setup with predefined schema fields and indexes akin to a relational database management system (RDBMS).</p></li> | ||
<li><p><strong>Multiple vector fields</strong>: Milvus enables the storage of multiple vector fields within a single collection, which can be either sparse or dense and may vary in dimensionality. Pinecone does not offer a comparable feature.</p></li> | ||
<li><p><strong>Tools</strong>: Milvus offers a more extensive selection of tools for database management and utilization, such as Attu, Birdwatcher, Backup, CLI, CDC and Spark and Kafka connector.</p></li> | ||
</ul> | ||
<h2 id="Whats-next" class="common-anchor-header">What’s next<button data-href="#Whats-next" class="anchor-icon" translate="no"> | ||
<svg translate="no" | ||
aria-hidden="true" | ||
focusable="false" | ||
height="20" | ||
version="1.1" | ||
viewBox="0 0 16 16" | ||
width="16" | ||
> | ||
<path | ||
fill="#0092E4" | ||
fill-rule="evenodd" | ||
d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" | ||
></path> | ||
</svg> | ||
</button></h2><ul> | ||
<li><p><strong>Trial</strong>: Experience Milvus firsthand by starting with the Milvus <a href="https://milvus.io/docs/quickstart.md">quickstart</a> or <a href="https://docs.zilliz.com/docs/register-with-zilliz-cloud">signing up for Zilliz Cloud</a>.</p></li> | ||
<li><p><strong>Learn more</strong>: Dive deeper into Milvus’s features through our comprehensive <a href="/docs/glossary.md">Terminology</a> and <a href="https://milvus.io/docs/manage-collections.md">User Guides</a>.</p></li> | ||
<li><p><strong>Explore alternatives</strong>: For a broader comparison of vector database options, explore additional resources on <a href="https://zilliz.com/comparison">this page</a>.</p></li> | ||
</ul> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"codeList":[],"headingContent":"Milvus Limits","anchorList":[{"label":"Milvus Limits","href":"Milvus-Limits","type":1,"isActive":false},{"label":"Length of a resource name","href":"Length-of-a-resource-name","type":2,"isActive":false},{"label":"Naming rules","href":"Naming-rules","type":2,"isActive":false},{"label":"Number of resources","href":"Number-of-resources","type":2,"isActive":false},{"label":"Number of resources in a collection","href":"Number-of-resources-in-a-collection","type":2,"isActive":false},{"label":"Length of a string","href":"Length-of-a-string","type":2,"isActive":false},{"label":"Dimensions of a vector","href":"Dimensions-of-a-vector","type":2,"isActive":false},{"label":"Input and Output per RPC","href":"Input-and-Output-per-RPC","type":2,"isActive":false},{"label":"Load limits","href":"Load-limits","type":2,"isActive":false},{"label":"Search limits","href":"Search-limits","type":2,"isActive":false},{"label":"Index limits on different search types","href":"Index-limits-on-different-search-types","type":2,"isActive":false}]} |
Oops, something went wrong.