[{"data":1,"prerenderedAt":656},["ShallowReactive",2],{"tool-chroma-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":29,"cover":57,"og":58,"expertise":59,"locales":60,"lang":62,"title":64,"description":65,"coverAlt":66,"url":67,"pricing":68,"kind":69,"metaTitle":70,"takeaways":71,"faq":77,"toc":90,"blocks":118,"others":463},"chroma","2026-07-20",10,"rag",[9,10,11,12,13],"Vector search","Embeddings","RAG","Hybrid search","Metadata filter",[15,16,17,18,19,20,21],"chroma vector database","chroma vs qdrant","chroma vs pgvector","hybrid search reciprocal rank fusion","self-hosted vector database","chroma cloud pricing","metadata filtering vector search",[23,26],{"name":24,"url":25},"Chroma","https:\u002F\u002Fgithub.com\u002Fchroma-core\u002Fchroma",{"name":27,"url":28},"Apache License 2.0","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FApache_License",[30,33,36,39,42,45,48,51,54],{"title":31,"url":32},"Chroma documentation: introduction","https:\u002F\u002Fdocs.trychroma.com\u002Fdocs\u002Foverview\u002Fintroduction",{"title":34,"url":35},"Chroma architecture overview","https:\u002F\u002Fdocs.trychroma.com\u002Freference\u002Farchitecture\u002Foverview",{"title":37,"url":38},"Chroma: getting started with the SDK","https:\u002F\u002Fdocs.trychroma.com\u002Fdocs\u002Foverview\u002Fgetting-started",{"title":40,"url":41},"Chroma: query and get","https:\u002F\u002Fdocs.trychroma.com\u002Fdocs\u002Fquerying-collections\u002Fquery-and-get",{"title":43,"url":44},"Chroma: metadata filtering","https:\u002F\u002Fdocs.trychroma.com\u002Fdocs\u002Fquerying-collections\u002Fmetadata-filtering",{"title":46,"url":47},"Chroma Cloud: Search API overview","https:\u002F\u002Fdocs.trychroma.com\u002Fcloud\u002Fsearch-api\u002Foverview",{"title":49,"url":50},"Chroma Cloud: hybrid search with RRF","https:\u002F\u002Fdocs.trychroma.com\u002Fcloud\u002Fsearch-api\u002Fhybrid-search",{"title":52,"url":53},"Chroma Cloud: pricing","https:\u002F\u002Fwww.trychroma.com\u002Fpricing",{"title":55,"url":56},"Chroma changelog","https:\u002F\u002Fwww.trychroma.com\u002Fchangelog","\u002Fimages\u002Fblog\u002Fchroma\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fchroma\u002Fog.jpg","ai-engineer",[61,62,63],"en","de","hu","Chroma: einfache Vektorsuche mit einem Haken","Chroma ist eine Apache-2.0-Vektor-Datenbank, die eingebettet, als einzelner Knoten oder als Chroma Cloud läuft. Wo sie angenehm ist und wo die guten Suchfunktionen an der Cloud-Grenze enden.","Titelbild: Chroma, eine Vektor-Datenbank für Retrieval, mit dem Retrieval-Pfad in vier Stufen von der Aufnahme bis zum Ranking","https:\u002F\u002Fwww.trychroma.com","Apache-2.0 · Cloud paid","Vector database","Chroma: einfache Suche, Tiefe nur in der Cloud",[72,73,74,75,76],"Chroma ist Apache-2.0, hat rund 27.000 GitHub-Sterne und eine API, die in Python-, TypeScript- und Rust-Clients identisch ist.","Der eingebettete Client startet im Prozess der Anwendung, eine erste Collection braucht also weder Server noch Container.","Hybrid-Suche mit Reciprocal Rank Fusion gibt es nur in Chroma Cloud; die Dokumentation nennt Single-Node-Support als künftige Arbeit.","Die Cloud-Preise sind nutzungsabhängig: 2,50 $ pro GiB geschrieben, 0,33 $ pro GiB gespeichert pro Monat, 0,0075 $ pro TiB abgefragt und 0,09 $ pro GiB zurückgegeben.","Das ehrliche Urteil: hervorragender Default für die erste Retrieval-Schicht, schwach als dauerhafter Wohnsitz für einen Hybrid-Such-Stack.",[78,81,84,87],{"q":79,"a":80},"Lässt sich Chroma kostenlos selbst hosten?","Ja. Der Server ist Apache-2.0 und läuft als lokale Bibliothek, als einzelner chroma-run-Prozess oder als Container. Chroma Cloud ist die kostenpflichtige, verwaltete Schicht darüber, und beide sprechen dieselbe API.",{"q":82,"a":83},"Unterstützt Chroma Hybrid-Suche?","Nur in Chroma Cloud. Die Search API bietet Reciprocal Rank Fusion über dichte und sparse Embeddings, und ihre Dokumentation sagt deutlich, dass Single-Node-Support für eine spätere Version geplant ist.",{"q":85,"a":86},"Wie gross kann eine Chroma-Instanz werden?","Die Architekturdokumentation nennt für Single-Node Chroma weniger als 10 Millionen Datensätze über eine Handvoll Collections. Grössere Workloads sind für die verteilte Deployment hinter Chroma Cloud gedacht.",{"q":88,"a":89},"Chroma oder pgvector?","pgvector gewinnt, wenn die Vektoren bereits in einer Postgres-Zeile stehen und transaktionale Konsistenz zählt. Chroma gewinnt, wenn Retrieval das Produkt ist: reichere Suchmodi, multimodale Collections und ein Client, der für dich einbettet.",[91,94,97,100,103,106,109,112,115],{"id":92,"title":93},"what-it-is","Was es ist",{"id":95,"title":96},"how-it-works","Wie es funktioniert",{"id":98,"title":99},"getting-started","Erste Schritte",{"id":101,"title":102},"hybrid-search","Hybrid-Suche und die Cloud-Grenze",{"id":104,"title":105},"pricing","Preise und Kosten pro Query",{"id":107,"title":108},"self-hosting","Selbst hosten: was tatsächlich läuft",{"id":110,"title":111},"where-it-shingles","Wo es schwächelt",{"id":113,"title":114},"verdict","Urteil",{"id":116,"title":117},"sources","Quellen",[119,123,126,129,132,148,149,152,161,164,165,168,171,174,210,211,214,216,227,228,231,299,302,303,306,318,323,324,327,395,398,399,402,417,423,424],{"type":120,"content":121},"paragraph",[122],"Chroma ist eine quelloffene Vektor-Datenbank unter Apache-2.0, die als eingebettete Bibliothek in einer Anwendung, als einzelner chroma-run-Prozess oder als Chroma Cloud läuft. Die Position dieses Tests ist einfach: Chroma ist die beste Voreinstellung für die erste Retrieval-Schicht eines RAG-Systems, weil die Reibung zwischen einem leeren Repository und einer funktionierenden Query nahezu null ist — und ein schlechter langfristiger Wohnsitz für einen ernsthaften Hybrid-Such-Stack, weil die interessanten Teile der Query-Sprache laut Dokumentation nur in der Cloud existieren.",{"type":120,"content":124},[125],"Im Stack besetzt sie genau eine Position: Speicher und Retrieval für Embeddings. Sie konkurriert mit pgvector, wenn die Anwendung bereits Postgres fährt, mit Qdrant oder Milvus, wenn Retrieval einen eigenen Dienst braucht, und mit Pinecone, wenn niemand betreiben will. Chromas Alleinstellungsmerkmal ist nicht der Index, sondern die Bedienung: eine an die Collection gebundene Embedding-Funktion, eine Filtersprache ohne Index-Deklarationen und Clients für Python, TypeScript und Rust, die alle dieselben Verben sprechen.",{"type":127,"level":128,"id":92,"text":93},"heading",2,{"type":120,"content":130},[131],"Das Datenmodell hat drei Ebenen. Ein Tenant enthält Datenbanken, eine Datenbank enthält Collections, und eine Collection ist die Einheit von Speicher und Abfrage: Jeder Eintrag hat eine Id, ein Embedding und optional ein Dokument und ein Metadatenobjekt. Zugriffsrechte, Kontingente und Abrechnung sind auf Tenant-Ebene definiert, was für mandantenfähige SaaS zählt und in den meisten einzelnen Knoten still fehlt.",{"type":133,"ordered":134,"items":135},"list",false,[136,138,140,142,144,146],[137],"Lizenz: Apache 2.0, rund 27.000 Sterne im GitHub-Repository und ein getaggtes Release 1.5.9 vom Mai 2026.",[139],"Drei Betriebsmodi: eine eingebettete Bibliothek, ein einzelner Knoten und ein verteiltes Deployment, das Chroma Cloud betreibt.",[141],"Drei Clients — Python, TypeScript und Rust — mit derselben Collection-, Add-, Query- und Get-Form, dazu einen asynchronen HTTP-Client.",[143],"Vier Suchmodi in einer Collection: dichte Vektoren, sparse Vektoren, Volltext und Regex über Dokumente sowie Metadatenfilter.",[145],"Embedding-Funktionen als Schnittstelle, sodass eine Collection beim Schreiben einbettet und query_texts keinen Modellaufruf im Anwendungscode braucht.",[147],"Zwei Query-APIs: das klassische query und get sowie eine neuere Search API mit Ranking-Ausdrücken, verfügbar in Chroma Cloud.",{"type":127,"level":128,"id":95,"text":96},{"type":120,"content":150},[151],"Chroma überlässt die Dauerhaftigkeit Subsystemen, die es nicht neu erfinden muss: SQLite lokal und in der verteilten Cloud-Storage-Objektspeicher, wo heisse Daten in SSD-Caches liegen. Das Argument des Herstellers ist wirtschaftlich statt exotisch — Vektoren sind gross und Arbeitsspeicher ist teuer, deshalb macht die Quelle der Wahrheit im Objektspeicher zu einem Bruchteil der RAM-Kosten die Cloud-Preisliste erst möglich.",{"type":153,"attrs":154,"inner":158,"caption":159},"diagram",{"viewBox":155,"role":156,"aria-labelledby":157},"0 0 720 372","img","chroma-t chroma-d","\u003Ctitle id=\"chroma-t\">Der Retrieval-Pfad von Chroma\u003C\u002Ftitle>\u003Cdesc id=\"chroma-d\">Vier Stufen. Aufnahme: Chunks kommen mit Ids, Dokumenten und Metadaten an, eine Embedding-Funktion erzeugt die Vektoren. Index: Eine Collection hält Vektorindex, Sparse-Index, Volltextindex und Metadatenindex nebeneinander. Query: Ein Vektor, ein where-Filter auf Metadaten und ein where_document-Filter auf den gespeicherten Text verengen die Kandidatenmenge vor dem Ranking. Ranking: Die klassische Query-API liefert Distanzen, die Cloud Search API kann dichte und sparse Rankings mit Reciprocal Rank Fusion verschmelzen. Darunter ein Balken: Single Node hält alles in einem Prozess über SQLite, Chroma Cloud betreibt eine verteilte Engine auf Objektspeicher mit SSD-Cache.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"28\" class=\"d-title\">Der Retrieval-Pfad von Chroma\u003C\u002Ftext>\u003Ctext x=\"700\" y=\"28\" text-anchor=\"end\" class=\"d-label\">vier Stufen\u003C\u002Ftext>\u003Crect x=\"20\" y=\"46\" width=\"164\" height=\"64\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"102\" y=\"73\" text-anchor=\"middle\" class=\"d-text\">Aufnahme\u003C\u002Ftext>\u003Ctext x=\"102\" y=\"95\" text-anchor=\"middle\" class=\"d-small\">Chunks, Ids, Metadaten\u003C\u002Ftext>\u003Cpath d=\"M102 110 V124\" class=\"d-line\" \u002F>\u003Crect x=\"20\" y=\"124\" width=\"164\" height=\"150\" rx=\"10\" class=\"d-box d-dash\" \u002F>\u003Ctext x=\"102\" y=\"152\" text-anchor=\"middle\" class=\"d-small\">Embedding-Funktion\u003C\u002Ftext>\u003Ctext x=\"102\" y=\"178\" text-anchor=\"middle\" class=\"d-small\">Id ist Pflicht\u003C\u002Ftext>\u003Ctext x=\"102\" y=\"204\" text-anchor=\"middle\" class=\"d-small\">Dokumente optional\u003C\u002Ftext>\u003Ctext x=\"102\" y=\"230\" text-anchor=\"middle\" class=\"d-small\">upsert statt nur add\u003C\u002Ftext>\u003Crect x=\"192\" y=\"46\" width=\"164\" height=\"64\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"274\" y=\"73\" text-anchor=\"middle\" class=\"d-text\">Index\u003C\u002Ftext>\u003Ctext x=\"274\" y=\"95\" text-anchor=\"middle\" class=\"d-small\">vier Indexe, eine Collection\u003C\u002Ftext>\u003Cpath d=\"M274 110 V124\" class=\"d-line\" \u002F>\u003Crect x=\"192\" y=\"124\" width=\"164\" height=\"150\" rx=\"10\" class=\"d-box d-dash\" \u002F>\u003Ctext x=\"274\" y=\"152\" text-anchor=\"middle\" class=\"d-small\">Vektorindex\u003C\u002Ftext>\u003Ctext x=\"274\" y=\"178\" text-anchor=\"middle\" class=\"d-small\">sparse Vektor\u003C\u002Ftext>\u003Ctext x=\"274\" y=\"204\" text-anchor=\"middle\" class=\"d-small\">Volltext, Regex\u003C\u002Ftext>\u003Ctext x=\"274\" y=\"230\" text-anchor=\"middle\" class=\"d-small\">Metadaten\u003C\u002Ftext>\u003Crect x=\"364\" y=\"46\" width=\"164\" height=\"64\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"446\" y=\"73\" text-anchor=\"middle\" class=\"d-text\">Query\u003C\u002Ftext>\u003Ctext x=\"446\" y=\"95\" text-anchor=\"middle\" class=\"d-small\">Vektor, where, Dokument\u003C\u002Ftext>\u003Cpath d=\"M446 110 V124\" class=\"d-line\" \u002F>\u003Crect x=\"364\" y=\"124\" width=\"164\" height=\"150\" rx=\"10\" class=\"d-box d-dash\" \u002F>\u003Ctext x=\"446\" y=\"152\" text-anchor=\"middle\" class=\"d-small\">query, get\u003C\u002Ftext>\u003Ctext x=\"446\" y=\"178\" text-anchor=\"middle\" class=\"d-small\">n_results, include\u003C\u002Ftext>\u003Ctext x=\"446\" y=\"204\" text-anchor=\"middle\" class=\"d-small\">$in, $and, $or\u003C\u002Ftext>\u003Ctext x=\"446\" y=\"230\" text-anchor=\"middle\" class=\"d-small\">$contains auf Arrays\u003C\u002Ftext>\u003Crect x=\"536\" y=\"46\" width=\"164\" height=\"64\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"618\" y=\"73\" text-anchor=\"middle\" class=\"d-text\">Ranking\u003C\u002Ftext>\u003Ctext x=\"618\" y=\"95\" text-anchor=\"middle\" class=\"d-small\">Distanzen oder Scores\u003C\u002Ftext>\u003Cpath d=\"M618 110 V124\" class=\"d-line\" \u002F>\u003Crect x=\"536\" y=\"124\" width=\"164\" height=\"150\" rx=\"10\" class=\"d-box d-dash\" \u002F>\u003Ctext x=\"618\" y=\"152\" text-anchor=\"middle\" class=\"d-small\">klassisch: Distanzen\u003C\u002Ftext>\u003Ctext x=\"618\" y=\"178\" text-anchor=\"middle\" class=\"d-small\">Search: aufsteigend\u003C\u002Ftext>\u003Ctext x=\"618\" y=\"204\" text-anchor=\"middle\" class=\"d-small\">RRF, nur Cloud\u003C\u002Ftext>\u003Ctext x=\"618\" y=\"230\" text-anchor=\"middle\" class=\"d-small\">return_rank ist Pflicht\u003C\u002Ftext>\u003Crect x=\"20\" y=\"292\" width=\"680\" height=\"64\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"360\" y=\"319\" text-anchor=\"middle\" class=\"d-text\">Ein Prozess über SQLite auf einem Knoten, oder verteilte Engine auf Objektspeicher\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"341\" text-anchor=\"middle\" class=\"d-small\">Gleiche API in beiden Modi · die Search API ist die Ausnahme und der eigentliche Unterschied\u003C\u002Ftext>",[160],"Die API ist in beiden Modi identisch, bis die Search API ins Spiel kommt, und genau dort hören die beiden Produkte auf, austauschbar zu sein.",{"type":120,"content":162},[163],"Was der Hersteller nicht veröffentlicht, ist ein öffentlicher Benchmark mit Methodik. Die Cloud-Dokumentation behauptet, produktive Systeme erreichten über 90 Prozent Recall und das Speicherkonzept mache Chroma Cloud um eine Grössenordnung günstiger als Alternativen; beides ist plausibel und nichts davon aus den Docs reproduzierbar. Behandle es als Startpunkt für die eigene Evaluation, nicht als Ergebnis.",{"type":127,"level":128,"id":98,"text":99},{"type":120,"content":166},[167],"Der eingebettete Client startet einen Server im Prozess und verliert beim Beenden des Programms alles, was genau richtig für einen Test und genau falsch für Produktion ist. Eine minimale Query braucht Client, Collection, Upsert und Query — ohne Server, ohne Container, ohne Index-Tuning.",{"type":169,"code":170},"code","import chromadb\n\nclient = chromadb.Client()\ncollection = client.get_or_create_collection(\"docs\")\n\ncollection.upsert(\n    ids=[\"d1\", \"d2\"],\n    documents=[\n        \"Refunds are issued within five business days.\",\n        \"Support answers within one working day.\",\n    ],\n    metadatas=[{\"topic\": \"billing\"}, {\"topic\": \"support\"}],\n)\n\nhits = collection.query(\n    query_texts=[\"how fast is a refund?\"],\n    where={\"topic\": \"billing\"},\n    n_results=1,\n)\n\n# Results are column-major: one list per query, one entry per result.\nprint(hits[\"documents\"][0][0])",{"type":120,"content":172},[173],"Drei Details in diesem Snippet verursachen später den grössten Teil der Reibung. Ergebnisse kommen spaltenweise zurück, jeder Verbraucher muss also parallele Arrays zippen, statt über Datensätze zu iterieren. n_results steht standardmässig auf 10, was auf einer kleinen Test-Collection still nichts Brauchbares liefert. Und der Filter gehört in where gegen Metadaten, während Textabgleich gegen das gespeicherte Dokument in where_document mit $contains oder einer Regex läuft.",{"type":175,"variant":176,"title":177,"body":178},"callout","note","Filteroperatoren",[179],[180,181,184,185,188,189,184,192,195,196,184,199,202,203,184,206,209],"Der Metadatenfilter unterstützt Vergleichsoperatoren wie ",{"tag":169,"children":182},[183],"$gt"," und ",{"tag":169,"children":186},[187],"$lte",", Zugehörigkeit mit ",{"tag":169,"children":190},[191],"$in",{"tag":169,"children":193},[194],"$nin",", boolesche Verknüpfung mit ",{"tag":169,"children":197},[198],"$and",{"tag":169,"children":200},[201],"$or"," sowie seit Februar 2026 ",{"tag":169,"children":204},[205],"$contains",{"tag":169,"children":207},[208],"$not_contains"," auf Array-Metadaten. Eine Index-Deklaration ist nicht nötig, was praktisch ist, bis ein Filter langsam wird und es nichts zu justieren gibt.",{"type":127,"level":128,"id":101,"text":102},{"type":120,"content":212},[213],"Die Search API ersetzt query und get durch einen zusammensetzbaren Ausdruck: Search baut Filter und Limit, Knn liefert ein Ranking, Rrf verschmilzt mehrere Rankings. Reciprocal Rank Fusion bewertet jeden Kandidaten als negative Summe aus Gewicht geteilt durch Glättungskonstante plus Rang, wobei k standardmässig 60 ist — deshalb funktioniert es über dichte und sparse Ergebnisse hinweg, ohne zwei unterschiedliche Score-Skalen zu normieren.",{"type":169,"code":215},"from chromadb import Search, K, Knn, Rrf\n\ndense = Knn(\n    query=\"how fast is a refund?\",\n    key=\"#embedding\",\n    return_rank=True,\n    limit=200,\n)\nsparse = Knn(\n    query=\"how fast is a refund?\",\n    key=\"sparse_embedding\",\n    return_rank=True,\n    limit=200,\n)\n\nsearch = (\n    Search()\n    .where(K(\"topic\") == \"billing\")\n    .rank(Rrf(ranks=[dense, sparse], weights=[0.7, 0.3], k=60))\n    .limit(10)\n    .select(K.DOCUMENT, K.SCORE)\n)\n\nrows = collection.search(search).rows()[0]\nfor row in rows:\n    print(row[\"score\"], row[\"document\"][:60])",{"type":175,"variant":217,"title":218,"body":219},"warn","Drei Fallen in der Search API",[220],[221,222,226],"Sie ist als Chroma-Cloud-only dokumentiert, Single-Node-Support ist für eine spätere Version geplant, dieser Code läuft also nicht gegen einen selbst gehosteten Server. ",{"tag":223,"children":224},"strong",[225],"return_rank=True"," ist für jedes Knn innerhalb eines Rrf Pflicht — ohne sie liefern die Komponenten Distanzen statt Ränge und erzeugen ein plausibles, still falsches Ranking. Und die Scores sind aufsteigend sortiert, Kleiner ist besser, anders als bei den Distanzen der klassischen API.",{"type":127,"level":128,"id":104,"text":105},{"type":120,"content":229},[230],"Chroma Cloud rechnet vier getrennte Zähler ab, und der interessante ist nicht der Vektorspeicher. Schreiben kostet 2,50 $ pro GiB, Speicher 0,33 $ pro GiB pro Monat, Queries 0,0075 $ pro TiB und Netzausgang 0,09 $ pro GiB zurückgegeben. Ein Starter-Plan kostet nichts pro Monat und enthält 5 $ Guthaben, zehn Datenbanken und zehn Teammitglieder; Team kostet 250 $ pro Monat mit 100 $ Guthaben, hundert Datenbanken, dreissig Mitgliedern und SOC II.",{"type":232,"head":233,"rows":253},"table",[234,239,244,249],[235,236,237,238],"Cloud-Plan","Preis","Zähler","Enthalten",[240,241,242,243],"Starter","0 $ pro Monat","Schreiben, Speicher, Query, Netz","5 $ Guthaben, 10 Datenbanken, 10 Mitglieder",[245,246,247,248],"Team","250 $ pro Monat","dieselben vier Zähler","100 $ Guthaben, 100 Datenbanken, 30 Mitglieder, SOC II",[250,251,247,252],"Enterprise","Individuell","unbegrenzte Datenbanken, Single Tenant, BYOC, SLAs",[254,263,272,281,290],[255,257,259,261],[256],"Schreiben",[258],"pro GiB geschrieben",[260],"2,50 $",[262],"einmal pro Ingest berechnet",[264,266,268,270],[265],"Speicher",[267],"pro GiB pro Monat",[269],"0,33 $",[271],"Vektoren plus Dokumente plus Metadaten",[273,275,277,279],[274],"Query",[276],"pro TiB abgefragt",[278],"0,0075 $",[280],"bei den meisten Korpusgrössen praktisch gratis",[282,284,286,288],[283],"Netz",[285],"pro GiB zurückgegeben",[287],"0,09 $",[289],"der Zähler, der grosse Ergebnisse bestraft",[291,293,295,297],[292],"Selbst gehostet",[294],"0 $",[296],"eigene Festplatte",[298],"Apache-2.0, ein Knoten, keine Search API",{"type":120,"content":300},[301],"Der Rechner des Herstellers ist aufschlussreich. Bei 1536 Dimensionen und 8-KiB-Dokumenten über 500 Collections kosten eine Million Dokumente rund 34 $ zum Schreiben, sechs Millionen gespeicherte Dokumente rund 27 $ pro Monat und zehn Millionen Queries rund 19 $ — etwa 79 $ pro Monat für einen Korpus von sechs Millionen Chunks. Beachte die Richtung der Ökonomie: Aus 1 GiB Text werden rund 15 GiB Vektoren, der Speicher wird also auf der schnellst wachsenden Zahl abgerechnet, und ganze Dokumente statt kurzer Chunks zurückzugeben ist genau das, was den Netzzähler hochtreibt.",{"type":127,"level":128,"id":107,"text":108},{"type":120,"content":304},[305],"Selbst hosten ist nicht ein einziges Szenario. Die Architekturdokumentation unterscheidet drei Modi mit unterschiedlichen Obergrenzen, und der Unterschied zwischen ihnen ist grösser, als die Begriffe nahelegen.",{"type":133,"ordered":134,"items":307},[308,310,312,314,316],[309],"Eingebettet: chromadb.Client() läuft im Prozess, hält Daten im Speicher oder auf einem lokalen Pfad und stirbt mit dem Programm. Gut für Tests, nicht für einen Dienst.",[311],"Single Node: chroma run --path hinter einem HttpClient, dokumentiert für weniger als 10 Millionen Datensätze über eine Handvoll Collections. Dauerhaft, einfach, ein einzelner Ausfallpunkt.",[313],"Verteilt: das Deployment, das Chroma Cloud betreibt, mit Objektspeicher-Persistenz und SSD-Caches, pro Datenbank an eine Region gebunden.",[315],"Datenstandort: Chroma Cloud läuft in AWS us-east-1 und seit April 2026 in GCP europe-west1. Die Region wird bei der Erstellung fixiert, ein Umzug bedeutet eine neue Datenbank und ein Reindex.",[317],"Compliance: Chroma Cloud ist SOC 2 Type II zertifiziert; kundenseitig verwaltete Verschlüsselungsschlüssel kamen im Dezember 2025, privates Networking im Januar 2026.",{"type":175,"variant":176,"title":319,"body":320},"Die Regionswahl ist endgültig",[321],[322],"Die EU-Region ist auf allen Plänen verfügbar und bietet volle API-Parität für Collections, Suche und Forking — Chroma Sync, die Chroma CLI und der Search Agent sind zum Start aber nur in den USA verfügbar. Wenn ein Plan davon abhängt, lässt sich die bei der Erstellung getroffene Regionsentscheidung nicht rückgängig machen.",{"type":127,"level":128,"id":110,"text":111},{"type":120,"content":325},[326],"Die Schwächen kommen zuerst, weil sie die Entscheidung bestimmen. Hybrid-Ranking gibt es nur in der Cloud. Metadatenfiltering ist bequem statt justierbar, und ein langsamer Filter gibt dir keinen Index zum Nachjustieren. Die Ergebnisform ist spaltenweise, was jeden Verbraucher mit einer kleinen, dauerhaften Abgabe belastet. Und die Preisliste bestraft genau das Muster, das Retrieval-Augmented-Generation fördert: ein grosses Kontextfenster pro Query zurückzugeben.",{"type":232,"head":328,"rows":353},[329,334,338,343,348],[330,331,332,333],"","Deployment","Hybrid-Suche","Lock-in-Profil",[24,335,336,337],"eingebettet, ein Knoten, Cloud","RRF nur in Chroma Cloud","Apache-2.0-Server; die Search API nicht",[339,340,341,342],"pgvector","Erweiterung im bestehenden Postgres","manuell: Vektorindex plus SQL-Volltext","Postgres-Lizenz; nichts zu verlassen",[344,345,346,347],"Qdrant","selbst gehostet oder Cloud","nativ dicht plus sparse","Apache-2.0; filterlastiges Design zu lernen",[349,350,351,352],"Pinecone","nur verwaltet","nativ in der gehosteten API","kein selbst gehosteter Pfad",[354,364,375,384],[355,357,359,361,362],[356],"Lizenz",[358],"Apache 2.0",[360],"PostgreSQL-Lizenz",[358],[363],"proprietär",[365,367,369,371,373],[366],"Betriebsaufwand",[368],"am niedrigsten",[370],"keiner, gleiche Instanz",[372],"ein Dienst zu betreiben",[374],"keiner",[376,378,380,382,383],[377],"Dimensionsgrenzen",[379],"keine dokumentiert",[381],"2.000 auf vector, 4.000 auf halfvec",[379],[379],[385,387,389,391,393],[386],"Am besten geeignet",[388],"erste Retrieval-Schicht",[390],"Vektoren neben der Zeile",[392],"filterlastiges Retrieval",[394],"kein Betrieb überhaupt",{"type":120,"content":396},[397],"Der Vergleich, auf den es ankommt, ist der mit pgvector. Liegt der Korpus bereits in einer Postgres-Tabelle und gehören die Vektoren in dieselbe Transaktion, ist ein eigener Vektorspeicher ein zusätzlicher Dienst, den man sichern, absichern und überwachen muss, für eine Fähigkeit, die Postgres bereits liefern kann — mit der harten Obergrenze von 2.000 Dimensionen für den Standardtyp vector und 4.000 in halber Genauigkeit. Chroma verdient seinen Platz, wenn Retrieval das Produkt ist: multimodale Collections, Regex über gespeicherten Dokumenten, Collection-Forking für Experimente und eine Embedding-Funktion, die einen Modellaufruf aus dem Anwendungscode nimmt.",{"type":127,"level":128,"id":113,"text":114},{"type":120,"content":400},[401],"Chroma ist eine klug gewählte Voreinstellung mit einem bestimmten blinden Fleck. Die Bedienung ist echt: drei Clients, eine API, eine Filtersprache ohne Schema und ein Weg von import chromadb zum gerankten Ergebnis in etwa zehn Zeilen. Der blinde Fleck ist ebenso real: Die Query-Funktionen, die eine Demo von einem Retrieval-System unterscheiden, sind genau die, die du heute nicht selbst hosten kannst. Für eine erste Schicht ein vernünftiger Handel, für ein System mit langer Lebensdauer ein schlechter.",{"type":133,"ordered":403,"items":404},true,[405,407,409,411,413,415],[406],"Nimm es, wenn die Retrieval-Schicht noch entworfen wird und der schnellste Weg zu einer messbaren Baseline am wichtigsten ist.",[408],"Nimm es, wenn Embeddings, Dokumente und Metadaten in einer Collection leben müssen und das Team von Anfang an mandantenfähig ist.",[410],"Nimm es für Prototypen, die später ersetzt werden; die Collection-API ist klein genug, dass ein Neuschreiben einen Tag dauert, kein Quartal.",[412],"Lass es weg, wenn Hybrid-Suche heute im eigenen Netz bleiben muss — die Search API ist dort nicht verfügbar.",[414],"Lass es weg, wenn der Korpus bereits in Postgres liegt und pgvectors Dimensionsgrenze nicht zubeisst.",[416],"Denk neu darüber nach, sobald der Korpus einige Millionen Chunks überschreitet und Single-Node-Grenzen greifen, oder wenn Egress pro zurückgegebenem GiB die Rechnung dominiert.",{"type":175,"variant":418,"title":419,"body":420},"tip","Das eine richtig zu machen",[421],[422],"Hänge eine explizite Embedding-Funktion an die Collection und pinn die Modellversion in deiner eigenen Konfiguration. Die Standard-Embedding-Funktion ist bequem und wird sich unter dir ändern, und einen Korpus neu zu embedden ist die eine Migration in diesem Stack, die wirklich teuer ist.",{"type":127,"level":128,"id":116,"text":117},{"type":133,"ordered":403,"items":425},[426,431,435,439,443,447,451,455,459],[427],{"tag":428,"href":32,"children":429},"a",[430],"Chroma Dokumentation: Einführung",[432],{"tag":428,"href":35,"children":433},[434],"Chroma: Architekturüberblick",[436],{"tag":428,"href":38,"children":437},[438],"Chroma: erste Schritte mit dem SDK",[440],{"tag":428,"href":41,"children":441},[442],"Chroma: Query und Get",[444],{"tag":428,"href":44,"children":445},[446],"Chroma: Metadatenfilter",[448],{"tag":428,"href":47,"children":449},[450],"Chroma Cloud: Search API Überblick",[452],{"tag":428,"href":50,"children":453},[454],"Chroma Cloud: Hybrid-Suche mit RRF",[456],{"tag":428,"href":53,"children":457},[458],"Chroma Cloud: Preise",[460],{"tag":428,"href":56,"children":461},[462],"Chroma Changelog",[464,513,565,606],{"slug":465,"published":466,"minutes":467,"category":7,"tags":468,"keywords":473,"about":482,"sources":486,"cover":505,"og":506,"expertise":59,"locales":507,"lang":62,"title":508,"description":509,"coverAlt":510,"url":511,"pricing":512,"kind":469},"zep","2026-10-06",11,[469,470,471,472,11],"Agent memory","Knowledge graph","Temporal graph","Context engineering",[474,475,476,477,478,479,480,481],"zep ai","zep agent memory","graphiti knowledge graph","zep pricing","zep vs mem0","long-term memory for agents","temporal knowledge graph","zep cloud",[483],{"name":484,"url":485},"Zep","https:\u002F\u002Fwww.getzep.com\u002F",[487,490,493,496,499,502],{"title":488,"url":489},"Zep pricing: plans, credits and limits","https:\u002F\u002Fwww.getzep.com\u002Fpricing",{"title":491,"url":492},"Zep documentation","https:\u002F\u002Fhelp.getzep.com\u002F",{"title":494,"url":495},"Graphiti on GitHub","https:\u002F\u002Fgithub.com\u002Fgetzep\u002Fgraphiti",{"title":497,"url":498},"Graphiti product page","https:\u002F\u002Fwww.getzep.com\u002Fplatform\u002Fgraphiti\u002F",{"title":500,"url":501},"Announcing a new direction for Zep's open-source strategy","https:\u002F\u002Fwww.getzep.com\u002Fblog\u002Fannouncing-a-new-direction-for-zeps-open-source-strategy\u002F",{"title":503,"url":504},"Graphiti: temporal knowledge graphs for AI agents (arXiv)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2501.13956","\u002Fimages\u002Fblog\u002Fzep\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fzep\u002Fog.jpg",[61,62,63],"Zep-Review: Agenten-Memory auf einem temporalen Graphen","Zep ist eine gehostete Agenten-Memory-API auf einem temporalen Knowledge Graph: Credits beim Schreiben, Retrieval gratis, Flex ab 125 Dollar im Monat, Graphiti als selbst hostbarer Teil.","Diagramm, wie eine Aussage in Zep den Prompt erreicht: Nachrichten und Aussagen werden in einen benutzerspezifischen Context Graph aus Entitäten und Beziehungen extrahiert, und der Retrieval durchläuft den Graphen und liefert einen Kontextblock mit den tragenden Fakten.","https:\u002F\u002Fwww.getzep.com","Apache-2.0 core · Cloud from $50 per month",{"slug":514,"published":515,"minutes":516,"category":7,"tags":517,"keywords":519,"about":527,"sources":533,"cover":558,"og":559,"expertise":59,"locales":560,"lang":62,"title":561,"description":562,"coverAlt":563,"url":564,"pricing":68,"kind":69},"lancedb","2026-09-21",9,[9,12,518,11],"Embedded database",[514,520,521,522,523,524,525,526],"lancedb review","lance vector database","embedded vector database","lancedb vs qdrant","hybrid search rrf","lancedb indexing","lance data format",[528,530],{"name":69,"url":529},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVector_database",{"name":531,"url":532},"Apache Arrow","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FApache_Arrow",[534,537,540,543,546,549,552,555],{"title":535,"url":536},"LanceDB quickstart","https:\u002F\u002Fdocs.lancedb.com\u002Fquickstart",{"title":538,"url":539},"LanceDB vector indexes","https:\u002F\u002Fdocs.lancedb.com\u002Findexing\u002Fvector-index",{"title":541,"url":542},"LanceDB indexing guide","https:\u002F\u002Fdocs.lancedb.com\u002Findexing\u002Findex",{"title":544,"url":545},"LanceDB hybrid search","https:\u002F\u002Fdocs.lancedb.com\u002Fsearch\u002Fhybrid-search",{"title":547,"url":548},"LanceDB Enterprise","https:\u002F\u002Fdocs.lancedb.com\u002Fenterprise",{"title":550,"url":551},"LanceDB frequently asked questions","https:\u002F\u002Fdocs.lancedb.com\u002Ffaq\u002Ffaq-oss",{"title":553,"url":554},"LanceDB pricing","https:\u002F\u002Flancedb.com\u002Fpricing",{"title":556,"url":557},"LanceDB on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Flancedb\u002F","\u002Fimages\u002Fblog\u002Flancedb\u002Fcover.webp","\u002Fimages\u002Fblog\u002Flancedb\u002Fog.jpg",[61,62,63],"LanceDB: Vektorsuche, die als Bibliothek beginnt","Ein Test von LanceDB: eine Apache-2.0-Bibliothek statt Server, die IVF- und HNSW-Indexwahl, Hybridsuche mit Rangfusion und was Enterprise zusätzlich bringt.","Coverbild zum LanceDB-Test: eine Lance-Tabelle speist einen Vektorindex und einen Volltextindex in eine verschmolzene Rangliste","https:\u002F\u002Flancedb.com",{"slug":339,"published":515,"minutes":6,"category":7,"tags":566,"keywords":570,"about":577,"sources":583,"cover":598,"og":599,"expertise":59,"locales":600,"lang":62,"title":601,"description":602,"coverAlt":603,"url":579,"pricing":604,"kind":605},[9,567,568,11,569],"Postgres","HNSW","Quantisation",[339,571,572,573,574,575,576],"pgvector vs qdrant","postgres vector search","hnsw index postgres","iterative index scans","binary quantization postgres","vector database postgres",[578,580],{"name":339,"url":579},"https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector",{"name":581,"url":582},"PostgreSQL","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPostgreSQL",[584,586,589,592,595],{"title":585,"url":579},"pgvector README",{"title":587,"url":588},"pgvector changelog","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector\u002Fblob\u002Fmaster\u002FCHANGELOG.md",{"title":590,"url":591},"PostgreSQL news: pgvector 0.8.2 released","https:\u002F\u002Fwww.postgresql.org\u002Fabout\u002Fnews\u002Fpgvector-082-released-3245\u002F",{"title":593,"url":594},"AWS: Scale pgvector with binary quantization","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdatabase\u002Fscale-pgvector-with-binary-quantization-on-amazon-aurora-postgresql\u002F",{"title":596,"url":597},"pgvector licence","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector\u002Fblob\u002Fmaster\u002FLICENSE","\u002Fimages\u002Fblog\u002Fpgvector\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fpgvector\u002Fog.jpg",[61,62,63],"pgvector im Review: die Vektordatenbank, die du nicht betreiben musst","Ein Review von pgvector 0.8.7: iterative Index-Scans für gefilterte Suche, HNSW und IVFFlat, Binärquantisierung bei 100 Millionen Vektoren und das CVE im Indexaufbau.","Eine Anfrage teilt sich oben in einen exakten Sequenzscan, einen HNSW-Graphlauf und eine IVFFlat-Sonde; ein Band unten zeigt einen iterativen Scan, der weiterläuft, bis die LIMIT-Zahl erreicht ist.","PostgreSQL licence","Vector database extension",{"slug":607,"published":608,"minutes":6,"category":7,"tags":609,"keywords":611,"about":617,"sources":621,"cover":649,"og":650,"expertise":59,"locales":651,"lang":62,"title":652,"description":653,"coverAlt":654,"url":620,"pricing":655,"kind":469},"mem0","2026-09-17",[469,610,11,9],"Long-term memory",[607,612,613,614,615,479,616],"mem0 review","agent memory layer","mem0 self-hosted","mem0 pricing","mem0 alternatives",[618],{"name":619,"url":620},"Mem0","https:\u002F\u002Fmem0.ai",[622,625,628,631,634,637,640,643,646],{"title":623,"url":624},"Mem0 documentation","https:\u002F\u002Fdocs.mem0.ai\u002Fintroduction",{"title":626,"url":627},"Mem0 quickstart","https:\u002F\u002Fdocs.mem0.ai\u002Fquickstart",{"title":629,"url":630},"How Mem0 works","https:\u002F\u002Fdocs.mem0.ai\u002Fcore-concepts\u002Fhow-it-works",{"title":632,"url":633},"Mem0 pricing","https:\u002F\u002Fmem0.ai\u002Fpricing",{"title":635,"url":636},"Mem0 on GitHub","https:\u002F\u002Fgithub.com\u002Fmem0ai\u002Fmem0",{"title":638,"url":639},"mem0ai on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Fmem0ai\u002F",{"title":641,"url":642},"Mem0 research and benchmarks","https:\u002F\u002Fmem0.ai\u002Fresearch",{"title":644,"url":645},"Mem0 MCP server","https:\u002F\u002Fdocs.mem0.ai\u002Fplatform\u002Fmem0-mcp",{"title":647,"url":648},"Mem0 paper on arXiv","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.19413","\u002Fimages\u002Fblog\u002Fmem0\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmem0\u002Fog.jpg",[61,62,63],"Mem0: was eine Agent-Speicherschicht pro Runde kostet","Ein Review von Mem0: extrahierte Fakten pro Runde, die Benchmark-Tabelle vom April 2026 mit Plattform-Vorbehalt, vier Cloud-Stufen und die Lücken beim Self-Hosting.","Eine Schleife, die aus Gespräch gespeicherte Fakten macht und sie zurück in den Prompt liest","Free tier · from $19 per month",1791383550676]