1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39708],{39282:function(e,a,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/comparison/pinecone-vs-zilliz-vs-milvus",function(){return s(46420)}])},65583:function(e,a,s){"use strict";s.d(a,{Z:function(){return h}});var n=s(31549);s(44194);var t=s(68973),i=s.n(t),r=s(14517),o=s(50523),c=s.n(o),l=s(8978),p=s.n(l),d=s(69167);function h(e){let{anchors:a,classes:s={}}=e,{root:t="",list:o="",link:l=""}=s,h=(e,a)=>{e.preventDefault();let s=document.getElementById(a);s&&((0,d.GZ)(s),window.history.pushState(null,"","#".concat(a)))};return(0,n.jsx)("div",{className:(0,r.Z)(c().anchorsContainer,t),children:(0,n.jsx)("ul",{className:(0,r.Z)(p().container,c().anchorsWrapper,o),children:a.map(e=>(0,n.jsx)("li",{className:(0,r.Z)(c().anchorItem),children:(0,n.jsx)(i(),{href:e.link,className:(0,r.Z)(c().link,l),onClick:a=>{h(a,e.id)},children:e.label})},e.link))})})}},46420:function(e,a,s){"use strict";s.r(a),s.d(a,{__N_SSG:function(){return ej},default:function(){return ev}});var n,t,i,r,o,c,l,p,d,h,m,u,_,g,x,b,f,j,v=s(31549),C=s(54854),S=s.n(C),N=s(25374),y=s.n(N),z=s(62722),k=s(65583),D=s(95012);function P(){let{t:e}=(0,z.$G)("pineconeVsZilliz"),a=e("head.anchors",{returnObjects:!0});return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(D.fq,{type:D.no.Center,classes:{root:y().customHeaderContainer},centralLayoutChildren:(0,v.jsxs)("div",{className:y().head,children:[(0,v.jsxs)("div",{className:y().logosWrapper,children:[(0,v.jsx)("span",{className:y().logoContainer,children:(0,v.jsx)("img",{src:"/images/pineconeVsZilliz/milvus-logo.svg",alt:"Milvus logo"})}),(0,v.jsx)("span",{className:y().logoContainer,children:(0,v.jsx)("img",{src:"/images/pineconeVsZilliz/pinecone-logo.svg",alt:"Pinecone logo"})}),(0,v.jsx)("span",{className:y().logoContainer,children:(0,v.jsx)("img",{src:"/images/pineconeVsZilliz/zilliz-logo.svg",alt:"ZIlliz logo"})})]}),(0,v.jsx)("h1",{className:y().title,children:(0,v.jsx)(z.cC,{t:e,i18nKey:"head.name",components:[(0,v.jsx)("span",{className:y().vsMark},"vsMark")]})}),(0,v.jsx)("p",{className:y().desc,children:(0,v.jsx)(z.cC,{t:e,i18nKey:"head.desc",components:[(0,v.jsx)(D.Qj,{href:"/glossary/semantic-similarity"},"semantic-similarity"),(0,v.jsx)(D.Qj,{href:"/blog/build-ai-agent-for-rag-with-milvus-and-llamaindex"},"ai-agent"),(0,v.jsx)(D.Qj,{href:"/learn/Retrieval-Augmented-Generation"},"rag"),(0,v.jsx)(D.Qj,{href:"/glossary/large-language-models-(llms)"},"llms"),(0,v.jsx)(D.Qj,{href:"/learn/what-is-vector-database"},"vector-database"),(0,v.jsx)(D.Qj,{href:"/glossary/vector-embeddings"},"vector-embeddings")]})}),(0,v.jsx)("p",{className:y().desc,children:(0,v.jsx)(z.cC,{t:e,i18nKey:"head.desc2",components:[(0,v.jsx)(D.Qj,{href:"/what-is-milvus"},"what-is-milvus"),(0,v.jsx)(D.Qj,{href:"/learn/scaling-vector-databases-to-meet-enterprise-demands"},"scalability"),(0,v.jsx)(D.Qj,{href:"/comparison"},"comparison")]})})]})}),(0,v.jsx)(k.Z,{anchors:a,classes:{root:y().anchorsWrapper,link:y().linkItem}})]})}var w=s(11735),M=s.n(w),A=s(8978),T=s.n(A),I=s(14517),L=s(44194);function Z(e){let{t:a}=(0,z.$G)("pineconeVsZilliz"),{stars:s}=e,n=(0,L.useMemo)(()=>"".concat(Math.floor(s/1e3),"K"),[s]);return(0,v.jsxs)("section",{className:(0,I.Z)(T().container,M().comparisonSectionContainer),id:"comparison-section",children:[(0,v.jsx)("h2",{children:(0,v.jsx)(z.cC,{t:a,i18nKey:"comparison.title",components:[(0,v.jsx)("span",{className:M().splitMark},"splitMark")]})}),(0,v.jsxs)("ul",{className:M().featureContainer,children:[(0,v.jsxs)("li",{children:[(0,v.jsx)("p",{className:M().featureTitle,children:a("comparison.comparisons.milvus.title")}),(0,v.jsx)("p",{className:M().featureDesc,children:(0,v.jsx)(z.cC,{t:a,i18nKey:"comparison.comparisons.milvus.desc",values:{stars:n},components:[(0,v.jsx)(D.Qj,{href:"/blog/cost-of-open-source-vector-databases-an-engineer-guide"},"open-source"),(0,v.jsx)(D.Qj,{href:"/learn/generative-ai"},"generative-ai"),(0,v.jsx)(D.Qj,{href:"/learn/similarity-metrics-for-vector-search"},"similarity-search"),(0,v.jsx)(D.Qj,{href:"/learn/Retrieval-Augmented-Generation"},"rag")]})})]}),(0,v.jsxs)("li",{children:[(0,v.jsx)("p",{className:M().featureTitle,children:a("comparison.comparisons.pinecone.title")}),(0,v.jsx)("p",{className:M().featureDesc,children:(0,v.jsx)(z.cC,{t:a,i18nKey:"comparison.comparisons.pinecone.desc",components:[(0,v.jsx)(D.Qj,{href:"/learn/vector-similarity-search"},"similarity-search")]})})]}),(0,v.jsxs)("li",{children:[(0,v.jsx)("p",{className:M().featureTitle,children:a("comparison.comparisons.zilliz.title")}),(0,v.jsx)("p",{className:M().featureDesc,children:(0,v.jsx)(z.cC,{t:a,i18nKey:"comparison.comparisons.zilliz.desc",components:[(0,v.jsx)(D.Qj,{href:"https://zilliz.com/cloud"},"cloud"),(0,v.jsx)(D.Qj,{href:"/pricing"},"pricing")]})})]})]})]})}var q=s(48556),Q=s.n(q),W=s(98363);function O(){let{t:e}=(0,z.$G)("pineconeVsZilliz");return(0,v.jsxs)("section",{className:(0,I.Z)(T().container,Q().glanceSectionContainer),id:"at-a-glance-section",children:[(0,v.jsx)("h2",{children:(0,v.jsx)(z.cC,{t:e,i18nKey:"atAGlance.title",components:[(0,v.jsx)("span",{className:Q().splitMark},"splitMark")]})}),(0,v.jsx)("p",{className:Q().desc,children:e("atAGlance.desc")}),(0,v.jsx)("div",{className:Q().tableContainer,children:(0,v.jsx)(W.Z,{rows:[{id:1,Type:"general",name:"<h4>License</h4>\n",milvus:"<h4>Open Source</h4><p>Under the Apache 2.0 License</p>",zilliz:"<h4>Open Source</h4><p>Enterprise license fully compatible with Milvus</p>",pinecone:"<h4>Closed Source</h4><p>Operates under proprietary licensing</p>",order:0},{id:2,Type:"general",name:"<h4>
1Infrastructure Responsibilities</h4>\n",milvus:"<h4>Self-hosted</h4><p>Infrastructure operations and maintenance considerations owned between customer</p>",zilliz:"<h4>Fully-managed SaaS\n</h4><p>Automated and fully-managed clusters with minimal provisioning, scaling, or operational burdens.</p>",pinecone:"<h4>Fully-managed SaaS</h4><p>Automated and fully-managed clusters with minimal provisioning, scaling, or operational burdens.</p>",order:1},{id:3,Type:"general",name:"<h4>Scalability</h4>\n",milvus:"<h4>Billion+ Scale\n</h4><p>Scale-out to a billion vectors with little performance degradation</p>",zilliz:"<h4>Billion+ Scale\n</h4><p>Scale-out to 10 billion vectors with little performance degradation</p>",pinecone:"<h4>Billion Scale with Performance Compromise</h4><p>Capable of scaling up over a billion vectors, albeit with increased latency and reduced QPS</p>",order:2},{id:4,Type:"general",name:"<h4>Performance</h4>",milvus:"<h4>Highly performant</h4><p>1.5X better performance than Pinecone on QPS</p>",zilliz:"<h4>Further Enhanced Performance</h4><p>3X better performance on average than Pinecone on QPS and latency</p>",pinecone:"<h4>Moderate Performance</h4><p>Sufficient for organizations without\xa0 high-performance requirements</p>",order:3},{id:5,Type:"general",name:"<h4>Pricing</h4>\n",milvus:"<h4>Not Applicable</h4><p>User incurs hardware and hosting costs</p>",zilliz:"<h4>Effectively Scaled, Usage-based Pricing</h4><p>Average 3x+ higher QP$ than Pinecone, and cost-effective pricing that adjusts with increased usage</p>",pinecone:"<h4>Usage-based Pricing, best for small use cases</h4><p>Lower QP$ and can become significantly expensive, particularly in high-concurrency use cases as usage scales.</p>",order:4}],nameCellClassName:{boxSizing:"border-box",width:"20%",verticalAlign:"top",textAlign:"left",border:"1px solid #e8eaee"},phoneNameCellClassName:{boxSizing:"border-box",width:"40%",verticalAlign:"top",textAlign:"left"}})})]})}var G=s(25210),E=s.n(G),$=s(68973),B=s.n($),F=s(60626),K=s.n(F),R=s(31536),V=s(71472),X=s.n(V),H=s(81221),J=s.n(H);(n=h||(h={}))[n.Dark=0]="Dark",n[n.Light=1]="Light",(t=m||(m={}))[t.QPS=0]="QPS",t[t.QP$=1]="QP$",t[t.Latency=2]="Latency",(i=u||(u={})).Database="database",i.Dataset="dataset",i.ScalarFilter="scalarFilter",(r=_||(_={})).Medium="medium",r.Large="large",(o=g||(g={})).Cohere="cohere",o.OpenAI="openAI",(c=x||(x={})).None="none",c.Low="low",c.High="high",(l=b||(b={}))[l.Failed=-1]="Failed",l[l.Timeout=-2]="Timeout",(p=f||(f={})).Performance="1",p.Cost="2",p.Latency="3";let U=[{id:"dataset1",label:"1,000,000 vectors with 768 dimensions",mutationalLabel:"10M vectors with 768 dimensions",value:"Search Performance Test (10M Dataset, 768 Dim)"},{id:"dataset2",label:"5,000,000 vectors with 1,536 dimensions",mutationalLabel:"5M vectors with 1536 dimensions",value:"Search Performance Test (5M Dataset, 1536 Dim)"}],Y=[{id:"dataset3",label:"100,000 vectors with 768 dimensions",mutationalLabel:"1M vectors with 768 dimensions",value:"Search Performance Test (1M Dataset, 768 Dim)"},{id:"dataset4",label:"50,000 vectors with 1,536 dimensions",mutationalLabel:"500K vectors with 1536 dimensions",value:"Search Performance Test (500K Dataset, 1536 Dim)"}];_.Medium,_.Large,x.None,x.Low,x.High;let ee=["ZillizCloud-8cu-perf","ZillizCloud-2cu-cap","Milvus-16c64g-hnsw","Milvus-4c16g-disk","Pinecone-p2.x1-8node","Pinecone-s1.x1-2node"],ea=["ZillizCloud-1cu-perf","ZillizCloud-1cu-cap","Milvus-2c8g-hnsw","Milvus-2c8g-disk","Pinecone-p2.x1","Pinecone-s1.x1"],es=["ZillizCloud","Milvus","Pinecone"],en="ZillizCloud",et="Zilliz Cloud";_.Medium,_.Large,g.Cohere,g.OpenAI,x.Low,x.High,_.Medium,g.Cohere,x.None,_.Medium,g.OpenAI,x.None,_.Large,g.Cohere,x.None,_.Large,g.OpenAI,x.None;var ei=e=>{let{progress:a,score:s,label:n,theme:t=h.Light,classes:i,unit:r,height:o=18}=e,{root:c,label:l,track:p,progressBar:d,textBar:m}=i||{},[u,_]=(0,L.useState)("0%"),[g,x]=(0,L.useTransition)(),b=(0,L.useMemo)(()=>r?"".concat(s," ").concat(r):s,[s,r]);return(0,L.useEffect)(()=>{x(()=>{_("".concat(a,"%"))})},[a]),(0,v.jsxs)("div",{className:(0,I.Z)(J().progressWrapper,c,{[J().dark]:t===h.Dark,[J().light]:t===h.Light}),children:[(0,v.jsx)(B(),{className:(0,I.Z)(J().label,l),href:"https://github.com/zilliztech/VectorDBBench
1/blob/main/vectordb_bench/results/leaderboard.json",children:n}),(0,v.jsxs)("div",{className:(0,I.Z)(J().progressTrack,p),children:[(0,v.jsx)("span",{className:(0,I.Z)(J().colorBar,d),style:{width:u,height:"".concat(o,"px")}}),(0,v.jsx)("span",{className:(0,I.Z)(J().textBar,m),children:b})]})]})};let er=e=>e.includes("Zilliz")?X().zillizColor:e.includes("Milvus")?X().milvusColor:e.includes("Pinecone")?X().pineconeColor:void 0;function eo(e){let{caseName:a,title:s,data:n,note:t,unit:i}=e;return(0,v.jsxs)("div",{className:X().barCharContainer,children:[a&&(0,v.jsx)("h4",{children:a}),(0,v.jsxs)("div",{className:X().charsWrapper,children:[(0,v.jsx)("h5",{children:s}),n.map(e=>{let a=er(e.label);return(0,v.jsx)(ei,{unit:i,progress:e.scaleScore,score:e.score,label:e.label,classes:{root:X().progressRoot,label:(0,I.Z)(X().customerLabel,a),track:X().customerTrack,progressBar:(0,I.Z)(X().customerProgressBar,a),textBar:X().customerTextBar}},e.label)})]}),t&&(0,v.jsx)("p",{className:X().noteWrapper,children:t})]})}let ec=e=>{let{t:a}=(0,z.$G)("pineconeVsZilliz"),{title:s,datasets:n,subTitle:t,caseInfos:i,caseTips:r,testData:o,defaultOpen:c}=e,l=(0,L.useMemo)(()=>{let[e,s,n]=[[],[],[]];return o.forEach(t=>{let{caseName:i,data:r}=t,{qpsData:o,qp$Data:c,latencyData:l}=r;o.sort((e,a)=>a.score-e.score),c.sort((e,a)=>a.score-e.score),l.sort((e,a)=>e.score-a.score),e.push({title:a("charts.chartTitle.qps"),caseName:i,data:o}),s.push({title:a("charts.chartTitle.qp$"),caseName:i,data:c}),n.push({title:a("charts.chartTitle.latency"),caseName:i,data:l})}),{qpsResult:e,qp$Result:s,latencyResult:n}},[o,a]);return(0,v.jsx)(R.Z,{defaultOpen:c,title:s,classes:{root:K().collapseRoot},children:(0,v.jsxs)("div",{className:K().collapseContentContainer,children:[(0,v.jsx)("ul",{className:K().datasetWrapper,children:n.map(e=>(0,v.jsxs)("li",{children:[(0,v.jsx)("p",{className:K().datasetName,children:e.name}),(0,v.jsx)("p",{className:K().datasetDesc,children:e.desc})]},e.name))}),(0,v.jsx)("p",{className:K().subTitle,children:t}),(0,v.jsx)("ul",{className:K().cloudsWrapper,children:i.map(e=>(0,v.jsxs)("li",{className:K().cloudItem,children:[(0,v.jsx)("span",{className:K().logoWrapper,children:(0,v.jsx)("img",{src:"/images/pineconeVsZilliz/".concat(e.name,"-cloud.svg"),alt:"".concat(e.name," cloud")})}),(0,v.jsx)("div",{className:K().cloudConfigs,children:e.caseDetail.map(e=>(0,v.jsxs)("div",{children:[(0,v.jsx)("p",{className:K().confName,children:e.name}),(0,v.jsx)("p",{className:K().confDesc,children:e.desc})]},e.name))})]},e.name))}),r,(0,v.jsxs)("div",{className:K().aspectContainer,children:[(0,v.jsx)("h3",{children:a("charts.result",{name:"QPS"})}),(0,v.jsx)("ul",{className:K().sizeCompareRow,children:l.qpsResult.map((e,a)=>(0,v.jsx)("li",{children:(0,v.jsx)(eo,{...e})},a))})]}),(0,v.jsxs)("div",{className:K().aspectContainer,children:[(0,v.jsx)("h3",{children:a("charts.result",{name:"Latency"})}),(0,v.jsx)("ul",{className:K().sizeCompareRow,children:l.latencyResult.map((e,a)=>(0,v.jsx)("li",{children:(0,v.jsx)(eo,{...e,unit:"ms"})},a))})]}),(0,v.jsxs)("div",{className:K().aspectContainer,children:[(0,v.jsx)("h3",{children:a("charts.result",{name:"QP$"})}),(0,v.jsx)("ul",{className:K().sizeCompareRow,children:l.qp$Result.map((e,a)=>(0,v.jsx)("li",{children:(0,v.jsx)(eo,{...e,unit:"K"})},a))}),(0,v.jsx)("p",{className:K().noteWrapper,children:(0,v.jsx)(z.cC,{t:a,i18nKey:"charts.tests.note",components:[(0,v.jsx)("strong",{className:K().note},"note")]})})]})]})})},el=e=>{let{t:a}=(0,z.$G)("pineconeVsZilliz"),{qpsData:s,qp$Data:n,latencyData:t,defaultOpen:i}=e;return(0,v.jsx)(R.Z,{title:a("charts.benchmarking.title"),classes:{root:K().collapseRoot},defaultOpen:i,children:(0,v.jsxs)("div",{className:K().benchScoreContentContainer,children:[(0,v.jsx)(eo,{title:a("charts.benchmarking.qps.title"),data:s}),(0,v.jsx)(eo,{title:a("charts.benchmarking.qp$.title"),data:n,note:(0,v.jsx)(z.cC,{t:a,i18nKey:"charts.benchmarking.qp$.note",components:[(0,v.jsx)("strong",{className:K().note},"note"),(0,v.jsx)(D.Qj,{href:"/vdbbench-leaderboard",className:K().link},"benchmark"),(0,v.jsx)(D.Qj,{href:"/vdbbench-leaderboard?dataset=vectorSearch#comparison-section",className:K().link},"different-case"),(0,v.jsx)(D.Qj,{href:"https://github.com/zilliztech/VectorDBBench
1/tree/main#leaderboard",className:K().link},"special-rule")]})}),(0,v.jsx)(eo,{title:a("charts.benchmarking.latency.title"),data:t,note:(0,v.jsx)(z.cC,{t:a,i18nKey:"charts.benchmarking.latency.note",components:[(0,v.jsx)("strong",{className:K().note},"note"),(0,v.jsx)(D.Qj,{href:"/vdbbench-leaderboard",className:K().link},"benchmark"),(0,v.jsx)(D.Qj,{href:"/vdbbench-leaderboard?dataset=vectorSearch#comparison-section",className:K().link},"different-case"),(0,v.jsx)(D.Qj,{href:"https://github.com/zilliztech/VectorDBBench/tree/main#leaderboard",className:K().link},"special-rule")]})})]})})};(d=j||(j={})).Milvus="milvus",d.Zilliz="zilliz",d.Pinecone="pinecone";let ep=(e,a)=>[Math.max(...e.map(e=>e[a])),Math.min(...e.map(e=>e[a]))],ed=(e,a)=>{var s;let n=(null===(s=e.find(e=>e.caseName===a.value))||void 0===s?void 0:s.data)||[];return{qpsData:n.map(e=>{let a=e.db===en?et:e.db;return{metricName:m.QPS,label:"".concat(a," (").concat(e.db_label,")"),score:e.qps,scaleScore:e.scale_qps}}).filter(e=>0!==e.score),qp$Data:n.map(e=>{let a=e.db===en?et:e.db;return{metricName:m.QP$,label:"".concat(a," (").concat(e.db_label,")"),score:Number((e.qp$/1e3).toFixed(1)),scaleScore:e.scale_qp$}}).filter(e=>0!==e.score),latencyData:n.map(e=>{let a=e.db===en?et:e.db;return{metricName:m.Latency,label:"".concat(a," (").concat(e.db_label,")"),score:e.latency,scaleScore:e.scale_latency}}).filter(e=>0!==e.score)}},eh=e=>{let a=e.data.filter(e=>e.qps>0).map(e=>e.qps),s=e.data.filter(e=>e.qp$>0).map(e=>e.qp$),n=e.data.filter(e=>e.latency>0).map(e=>e.latency),[t,i,r,o,c,l]=[1/0,1/0,1/0,1/0,1/0,1/0];a.length&&(t=Math.max(...a),i=Math.min(...a)),s.length&&(r=Math.max(...s),o=Math.min(...s)),n.length&&(c=Math.max(...n),l=Math.min(...n));let p=t===1/0||i===1/0,d=r===1/0||o===1/0,h=c===1/0||l===1/0;return e.data.map(e=>{let{label:a,qps:s,qp$:n,latency:i}=e,m=-1===a||-2===a,u=h?0:m?(2*c+10)/(l+10):(i+10)/(l+10),_=d?0:m?o/2/r*100:n/r*100,g=p?0:m?t/2/t*100:s/t*100;return{...e,qps_score:g,latency_score:u,qp$_score:_}})},em=e=>{let a=e.map(e=>eh(e)).flat(),s={};a.forEach(e=>{let{db_name:a,db:n,db_label:t}=e;if(!s.hasOwnProperty(a)){let i=n===en?et:e.db;s[a]="".concat(i," (").concat(t,")")}});let n=Object.keys(s).map(e=>({cloudName:s[e],data:a.filter(a=>a.db_name===e)})).map(e=>{let{data:a}=e,[s,n,t]=[1,1,1],[i,r,o]=[0,0,0];a.forEach(e=>{let{qps_score:a,qp$_score:c,latency_score:l}=e;a>0&&(s*=a,i++),c>0&&(n*=c,r++),l>0&&(t*=l,o++)});let c=Number(Math.pow(s,1/i).toFixed(4)),l=0===r?0:Number(Math.pow(n,1/r).toFixed(4)),p=Number(Math.pow(t,1/o).toFixed(4));return{...e,qpsScore:c,qp$Score:l,latencyScore:p}}),[t,i,r]=[[],[],[]];n.forEach(e=>{t.push({label:e.cloudName,score:e.qpsScore,scaleScore:0}),i.push({label:e.cloudName,score:e.qp$Score,scaleScore:0}),r.push({label:e.cloudName,score:e.latencyScore,scaleScore:0})});let o=Math.max(...t.map(e=>e.score)),c=Math.max(...i.map(e=>e.score)),l=Math.max(...r.map(e=>e.score));return t.forEach(e=>{e.scaleScore=Number((e.score/o*100).toFixed(3))}
1),i.forEach(e=>{e.scaleScore=Number((e.score/c*100).toFixed(3))}),r.forEach(e=>{e.scaleScore=Number((e.score/l*100).toFixed(3))}),t.sort((e,a)=>a.score-e.score),i.sort((e,a)=>a.score-e.score),r.sort((e,a)=>e.score-a.score),{qpsScoreList:t.filter(e=>1!==e.score),qp$ScoreList:i.filter(e=>1!==e.score&&!e.label.includes("Milvus")),latencyScoreList:r.filter(e=>1!==e.score)}};function eu(e){let{t:a}=(0,z.$G)("pineconeVsZilliz"),{largeSizeOriginData:s,mediumSizeOriginData:n,benchScoreOriginData:t}=e,i=a("charts.tests.largeSize.datasets",{returnObjects:!0}),r=a("charts.tests.mediumSize.datasets",{returnObjects:!0}),o=[{name:j.Milvus,caseDetail:[{name:a("charts.caseInfo.milvus16Cu.name"),desc:a("charts.caseInfo.milvus16Cu.desc")},{name:a("charts.caseInfo.milvus4C16g.name"),desc:a("charts.caseInfo.milvus4C16g.desc")}]},{name:j.Zilliz,caseDetail:[{name:a("charts.caseInfo.zilliz8Cu.name"),desc:a("charts.caseInfo.zilliz8Cu.desc")},{name:a("charts.caseInfo.zilliz2Cu.name"),desc:a("charts.caseInfo.zilliz2Cu.desc")}]},{name:j.Pinecone,caseDetail:[{name:a("charts.caseInfo.pineconeP2.name"),desc:a("charts.caseInfo.pineconeP2.desc")},{name:a("charts.caseInfo.pineconeS1.name"),desc:a("charts.caseInfo.pineconeS1.desc")}]}],c=[{name:j.Milvus,caseDetail:[{name:a("charts.caseInfo.milvus2C8G.name"),desc:a("charts.caseInfo.milvus2C8G.desc")},{name:a("charts.caseInfo.milvus2C8GDisk.name"),desc:a("charts.caseInfo.milvus2C8GDisk.desc")}]},{name:j.Zilliz,caseDetail:[{name:a("charts.caseInfo.zilliz1CuPerf.name"),desc:a("charts.caseInfo.zilliz1CuPerf.desc")},{name:a("charts.caseInfo.zilliz1CuCap.name"),desc:a("charts.caseInfo.zilliz1CuCap.desc")}]},{name:j.Pinecone,caseDetail:[{name:a("charts.caseInfo.pineconeP2X1.name"),desc:a("charts.caseInfo.pineconeP2X1.desc")},{name:a("charts.caseInfo.pineconeS1X1.name"),desc:a("charts.caseInfo.pineconeS1X1.desc")}]}],l=(0,L.useMemo)(()=>{let e=U.find(e=>"dataset1"===e.id),a=U.find(e=>"dataset2"===e.id),n=ed(s,e),t=ed(s,a);return[{caseName:(null==e?void 0:e.mutationalLabel)||"",data:n},{caseName:(null==a?void 0:a.mutationalLabel)||"",data:t}]},[s]),p=(0,L.useMemo)(()=>{let e=Y.find(e=>"dataset3"===e.id),a=Y.find(e=>"dataset4"===e.id),s=ed(n,e),t=ed(n,a);return[{caseName:(null==e?void 0:e.mutationalLabel)||"",data:s},{caseName:(null==a?void 0:a.mutationalLabel)||"",data:t}]},[n]),d=(0,L.useMemo)(()=>{let{qpsScoreList:e,qp$ScoreList:a,latencyScoreList:s}=em(t);return{qpsData:e,qp$Data:a,latencyData:s}},[t]);return(0,v.jsx)("section",{className:E().chartSectionContainer,id:"charts-section",children:(0,v.jsxs)("div",{className:T().container,children:[(0,v.jsx)("h2",{children:(0,v.jsx)(z.cC,{t:a,i18nKey:"charts.title",components:[(0,v.jsx)("span",{className:E().splitMark},"splitMark")]})}),(0,v.jsxs)("div",{className:E().collapseSection,children:[(0,v.jsx)(ec,{defaultOpen:!0,title:a("charts.tests.largeSize.title"),datasets:i,subTitle:(0,v.jsx)(z.cC,{t:a,i18nKey:"charts.tests.largeSize.subTitle",components:[(0,v.jsx)("span",{},"subTitle1")]}),caseInfos:o,caseTips:(0,v.jsxs)("ul",{className:E().tipsWrapper,children:[(0,v.jsx)("li",{children:a("charts.tests.largeSize.caseTips.tip1")}),(0,v.jsx)("li",{children:(0,v.jsx)(z.cC,{t:a,i18nKey:"charts.tests.largeSize.caseTips.tip2",components:[(0,v.jsx)(B(),{href:"/blog/how-to-choose-the-right-cu-type-and-size"},"blog-link")]})})]}),testData:l}),(0,v.jsx)(ec,{defaultOpen:!1,title:a("charts.tests.mediumSize.title"),datasets:r,subTitle:(0,v.jsx)(z.cC,{t:a,i18nKey:"charts.tests.mediumSize.subTitle",components:[(0,v.jsx)("span",{},"subTitle1")]}),caseInfos:c,caseTips:(0,v.jsxs)("ul",{className:E().tipsWrapper,children:[(0,v.jsx)("li",{children:a("charts.tests.mediumSize.caseTips.tip1")}),(0,v.jsx)("li",{children:(0,v.jsx)(z.cC,{t:a,i18nKey:"charts.tests.mediumSize.caseTips.tip2",components:[(0,v.jsx)(B(),{href:"/blog/how-to-choose-the-right-cu-type-and-size"},"blog-link")]})})]}),testData:p}),(0,v.jsx)(el,{defaultOpen:!1,qpsData:d.qpsData,qp$Data:d.qp$Data,latencyData:d.latencyData})]})]})})}var e_=s(3217),eg=s.n(e_),ex=s(96006);function eb(){let{t:e}=(0,z.$G)("pineconeVsZilliz"),a=[{title:e("deepDive.vectorSearch"),list:[{id:1,Type:"general",name:"<h4>Index</h4>\n",zilliz:"<h4>AUTOINDEX</h4><p>Automatically determine the most suitable configurations for searches and indexes</p>",pinecone:"<h4>Proprietary Index</h4><p>Static indexing algorithm to Pod bindings</p>",order:0},{id:2,Type:"general",name:"<h4>Hybrid Search</h4>\n",zilliz:"<h4>Multi-vector + Hybrid Search</h4><p>Enable more precise query results by allowing hybrid sparse & dense search, multimodal search, and vector search with scalar filtering</p>",pinecone:"<h4>Sparse + Dense Vector Search</h4><p>Offer nuanced similarity searches across sparse and dense embeddings but donât support multimodal search</p>",order:1}],id:(0,ex.ni)(e("deepDive.vectorSearch"))},{title:e("deepDive.cloudNative"),list:[{id:3,Type:"general",name:"<h4>Separate Compute and Storage resources</h4>\n",zilliz:"<h4>Yes</h4><p>Enable greater scalability and cost-efficiency for various workloads by separating compute and storage resources consumed, which is important for production applications</p>",pinecone:"<h4>No</h4><p>Resources cannot be independently adjusted to just the results that meet specific workload demands</p>",order:2},{id:4,Type:"general",name:"<h4>Data Partitioning</h4>",zilliz:"<h4>Dynamic Segment Placement</h4><p>Automatically redistribute data among various nodes or segments based on real-time usage patterns, index, query load, or other metrics.</p>",pinecone:"<h4>Static Data Sharding</h4><p>Divide data into shards based on predefined rules or keys, and these shards are distributed across different servers or cluster
1s.</p>",order:3}],id:(0,ex.ni)(e("deepDive.cloudNative"))},{title:e("deepDive.enterprise"),list:[{id:1,Type:"general",name:"<h4>Resiliency Guarantee</h4>\n",zilliz:"<h4>99.95% uptime SLA</h4>",pinecone:"<h4>99.9% uptime SLA</h4>",order:0},{id:2,Type:"general",name:"<h4>Monitoring</h4>\n",zilliz:"<h4>Built-in Metrics\n</h4><p>Granular native usage metrics, incl. QPS resource, query latency, and more</p>",pinecone:"<h4>Integration with third-party monitoring tools available</h4><p> Integration with third-party monitoring systems like Prometheus and Datadog.</p>",order:1}],id:(0,ex.ni)(e("deepDive.enterprise"))},{title:e("deepDive.security"),list:[{id:1,Type:"general",name:"<h4>Authorization</h4>\n",zilliz:"<h4>RBAC\n</h4><p>2 organizational roles, 2 project roles, and 4 built-in cluster roles available for granular permission controls</p>",pinecone:"<h4>RBAC\n</h4><p>2 organizational roles available for permission controls</p>",order:0},{id:2,Type:"general",name:"<h4>Private Connection</h4>\n",zilliz:"<h4>Support Private Link\n</h4><p>Enhance data security and network performance</p>",pinecone:"<h4>Support Private Link for Dedicated Enterprise Cluster ONLY</h4><p>Come with a high minimum commitment and special setup</p>",order:1},{id:3,Type:"general",name:"<h4>Data Encryption</h4>\n",zilliz:"<h4>Encryption both in-transit and at-rest\n</h4>",pinecone:"<h4>Encryption both in-transit and at-rest\n</h4>",order:2},{id:4,Type:"general",name:"<h4>Compliance & Privacy</h4>\n",zilliz:'<h4>SOC 2 Type II, ISO27001, <a href="/security#security-compliance" target="_self">GDPR-ready & HIPAA-ready</a></h4>',pinecone:"<h4>SOC 2 Type II, GDPR-ready & HIPAA Compliant</h4>",order:3},{id:5,Type:"general",name:"<h4>Enterprise Support</h4>\n",zilliz:"<h4>24/7/365 dedicated support\n</h4>",pinecone:"<h4>24/7/365 dedicated support\n</h4>",order:4}],id:(0,ex.ni)(e("deepDive.security"))},{title:e("deepDive.deployment"),list:[{id:1,Type:"general",name:"<h4>Cloud Service Provider</h4>\n",zilliz:"<h4>Available on AWS, GCP, and Azure</h4>",pinecone:"<h4>Available on AWS, GCP, and Azure</h4>",order:0},{id:2,Type:"general",name:"<h4>Self-hosted Option</h4>\n",zilliz:'<h4>Yes</h4><p>Option to bring company data to your own cloud (<a href="https://docs.zilliz.com/docs/byoc/start-with-byoc" target="_blank">BYOC</a>) and manage the data stored in the customerâs VPC</p>',pinecone:"<h4>No</h4><p>Only fully managed service is available</p>",order:1}],id:(0,ex.ni)(e("deepDive.deployment"))}],s={boxSizing:"border-box",width:"20%",verticalAlign:"top",textAlign:"left",border:"1px solid #e8eaee"},n={boxSizing:"border-box",width:"40%",verticalAlign:"top",textAlign:"left"};return(0,v.jsx)("section",{className:eg().diveSectionContainer,id:"deep-dive-section",children:(0,v.jsxs)("div",{className:T().container,children:[(0,v.jsx)("h2",{children:e("deepDive.title")}),(0,v.jsx)("p",{className:eg().desc,children:(0,v.jsx)(z.cC,{t:e,i18nKey:"deepDive.desc",components:[(0,v.jsx)(D.Qj,{href:"/learn/vector-similarity-search"},"similarity-search")]})}),(0,v.jsx)("ul",{children:a.map(e=>(0,v.jsx)("li",{className:eg().compareSection,id:e.id,children:(0,v.jsx)(R.Z,{title:e.title,children:(0,v.jsx)(W.Z,{rows:e.list,nameCellClassName:s,phoneNameCellClassName:n})})},e.title))})]})})}var ef=s(87584),ej=!0;function ev(e){let{t:a}=(0,z.$G)("comparison"),{originData:s,milvusStars:n}=e,{largeSizeOriginData:t,mediumSizeOriginData:i,benchScoreOriginData:r}=(0,L.useMemo)(()=>{let e=[],a=[];JSON.parse(JSON.stringify(s)).forEach(s=>{U.some(e=>e.value===s.caseName)&&e.push(s),Y.some(e=>e.value===s.caseName)&&a.push(s)}),e.forEach(e=>{let{data:a}=e,s=a.filter(e=>ee.some(a=>{var s;return null===(s=e.db_name)||void 0===s?void 0:s.toLowerCase().includes(a.toLowerCase())})),[n]=ep(s,"qps"),[t]=ep(s,"qp$"),[i]=ep(s,"latency"),r=s.map(e=>{let{qps:a,qp$:s,latency:r}=e,o=Number((a/n*100).toFixed(3)),c=Number((s/t*100).toFixed(3)),l=Number((r/i*100).toFixed(3));return{...e,qps:Number(a.toFixed(3)),qp$:Number(s.toFixed(0)),latency:Number(r.toFixed(1)),scale_qps:o,scale_qp$:c,scale_latency:l}});e.data=r}
1),a.forEach(e=>{let{data:a}=e,s=a.filter(e=>ea.some(a=>{var s;return null===(s=e.db_name)||void 0===s?void 0:s.toLowerCase().includes(a.toLowerCase())})),[n]=ep(s,"qps"),[t]=ep(s,"qp$"),[i]=ep(s,"latency"),r=s.map(e=>{let{qps:a,qp$:s,latency:r}=e,o=Number((a/n*100).toFixed(3)),c=Number((s/t*100).toFixed(3)),l=Number((r/i*100).toFixed(3));return{...e,qps:Number(a.toFixed(3)),qp$:Number(s.toFixed(3)),latency:Number(r.toFixed(3)),scale_qps:o,scale_qp$:c,scale_latency:l}});e.data=r});let n=[...U,...Y].map(e=>e.value),t=JSON.parse(JSON.stringify(s)).filter(e=>n.includes(e.caseName));return t.forEach(e=>{let{data:a}=e,s=a.filter(e=>{var a;return es.map(e=>e.toLowerCase()).includes(null===(a=e.db)||void 0===a?void 0:a.toLowerCase())});e.data=s}),{largeSizeOriginData:e,mediumSizeOriginData:a,benchScoreOriginData:t}},[s]);return(0,v.jsxs)("main",{children:[(0,v.jsxs)(S(),{children:[(0,v.jsx)("title",{children:a("pineconeMeta.title")}),(0,v.jsx)("meta",{name:"description",content:a("pineconeMeta.desc")}),(0,v.jsx)("meta",{name:"keywords",content:a("pineconeMeta.keywords")})]}),(0,v.jsx)(P,{}),(0,v.jsx)(Z,{stars:n}),(0,v.jsx)(O,{}),(0,v.jsx)(eu,{largeSizeOriginData:t,mediumSizeOriginData:i,benchScoreOriginData:r}),(0,v.jsx)(eb,{}),(0,v.jsx)(ef.Z,{source:"pinecone-vs-zilliz-vs-milvus"})]})}},69167:function(e,a,s){"use strict";s.d(a,{GZ:function(){return n}});let n=function(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return;let s={behavior:"smooth",...a};e.scrollIntoView(s)}},81221:function(e){e.exports={progressWrapper:"customerProgress_progressWrapper__NmLEV",label:"customerProgress_label__Zsew_",progressTrack:"customerProgress_progressTrack__BThQP",colorBar:"customerProgress_colorBar__TzIVl",textBar:"customerProgress_textBar__OXeK_",dark:"customerProgress_dark__ZFyxi",light:"customerProgress_light__T5HqI",progressAnimation:"customerProgress_progressAnimation__EArmt",spin:"customerProgress_spin__GTJuD"}},50523:function(e){e.exports={anchorsContainer:"headAnchors_anchorsContainer__XRBFJ",anchorsWrapper:"headAnchors_anchorsWrapper__AGOrn",anchorItem:"headAnchors_anchorItem__84AAs",link:"headAnchors_link__RYS6I",progressAnimation:"headAnchors_progressAnimation__rd1gS",spin:"headAnchors_spin__ciz5V"}},25210:function(e){e.exports={chartSectionContainer:"chartsSection_chartSectionContainer__Lz36I",splitMark:"chartsSection_splitMark__WuWRB",desc:"chartsSection_desc__ozEAS",tipsWrapper:"chartsSection_tipsWrapper__r8bfp",collapseSection:"chartsSection_collapseSection___yKuC",progressAnimation:"chartsSection_progressAnimation__dJwcQ",spin:"chartsSection_spin__kN7r2"}},11735:function(e){e.exports={comparisonSectionContainer:"comparisonSection_comparisonSectionContainer__zMJGs",splitMark:"comparisonSection_splitMark__JvQpF",featureContainer:"comparisonSection_featureContainer__4CXXj",featureTitle:"comparisonSection_featureTitle__MMlX5",featureDesc:"comparisonSection_featureDesc__gtTCv",progressAnimation:"comparisonSection_progressAnimation__lNI__",spin:"comparisonSection_spin__hElvh"}},71472:function(e){e.exports={barCharContainer:"barChart_barCharContainer__8Kaxq",charsWrapper:"barChart_charsWrapper__7wxub",progressRoot:"barChart_progressRoot__tJ4ii",customerLabel:"barChart_customerLabel__4yUuG",zillizColor:"barChart_zillizColor__zoj2X",milvusColor:"barChart_milvusColor__9_P8i",pineconeColor:"barChart_pineconeColor__54u6N",customerTrack:"barChart_customerTrack__ST4lt",customerProgressBar:"barChart_customerProgressBar__opovm",customerTextBar:"barChart_customerTextBar__H37TJ",noteWrapper:"barChart_noteWrapper__9kgIH",note:"barChart_note__1INWQ",link:"barChart_link__b__DF",progressAnimation:"barChart_progressAnimation__1hpUw",spin:"barChart_spin__Q4yC4"}},60626:function(e){e.exports={collapseRoot:"collapsibleCharts_collapseRoot__2xGHD",iconWrapper:"collapsibleCharts_iconWrapper__DqSDI",collapseContentContainer:"collapsibleCharts_collapseContentContainer__Vjped",datasetWrapper:"collapsibleCharts_datasetWrapper__cXd6P",datasetName:"collapsibleCharts_datasetName__PsX_5",datasetDesc:"collapsibleCharts_datasetDesc__YV4X2",subTitle:"collapsibleCharts_subTitle__H4M3M",cloudsWrapper:"collapsibleCharts_cloudsWrapper__kjpsu",cloudItem:"collapsibleCharts_cloudItem__BK_P9",logoWrapper:"collapsibleCharts_logoWrapper__hesQT",cloudConfigs:"collapsibleCharts_cloudConfigs__9Admk",confName:"collapsibleCharts_confName__kUIGt",confDesc:"collapsibleCharts_confDesc__2jouG",aspectContainer:"collapsibleCharts_aspectContainer__1ChzD",
1noteWrapper:"collapsibleCharts_noteWrapper__N5BOO",note:"collapsibleCharts_note__GauDs",sizeCompareRow:"collapsibleCharts_sizeCompareRow__4D7Ck",benchScoreContentContainer:"collapsibleCharts_benchScoreContentContainer__LfJhN",progressAnimation:"collapsibleCharts_progressAnimation__tzwKE",spin:"collapsibleCharts_spin__fFG1h"}},3217:function(e){e.exports={diveSectionContainer:"diveSection_diveSectionContainer__JSKoU",splitMark:"diveSection_splitMark__fa1nj",desc:"diveSection_desc__9Gexe",compareSection:"diveSection_compareSection__7GexP",iconWrapper:"diveSection_iconWrapper__lXxjw",progressAnimation:"diveSection_progressAnimation__145sY",spin:"diveSection_spin__xCTks"}},48556:function(e){e.exports={glanceSectionContainer:"glanceSection_glanceSectionContainer__AJ1Sl",splitMark:"glanceSection_splitMark__4M9hY",desc:"glanceSection_desc__sA71e",progressAnimation:"glanceSection_progressAnimation__hNkyU",spin:"glanceSection_spin__JcLlh"}},25374:function(e){e.exports={customHeaderContainer:"headSection_customHeaderContainer__xSaFK",head:"headSection_head__DOVkK",logosWrapper:"headSection_logosWrapper__V61lJ",logoContainer:"headSection_logoContainer__wQjdK",title:"headSection_title__0f_Mu",vsMark:"headSection_vsMark__RCJQM",desc:"headSection_desc__X9Lse",anchorsWrapper:"headSection_anchorsWrapper__Wod5s",linkItem:"headSection_linkItem__kgQUH",progressAnimation:"headSection_progressAnimation__Pt8c1",spin:"headSection_spin__g905K"}}},function(e){e.O(0,[31759,60306,49943,60697,8147,30441,89842,64336,43878,24045,81773,92888,49774,40179],function(){return e(e.s=39282)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.