[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-github-qdrant-sliding-time-window":3,"mdc-uay38n-key":47,"related-repo-github-qdrant-sliding-time-window":421,"related-org-github-qdrant-sliding-time-window":526},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":42,"sourceUrl":45,"mdContent":46},"qdrant-sliding-time-window","implement sliding time windows in Qdrant","Guides sliding time window scaling in Qdrant. Use when someone asks 'only recent data matters', 'how to expire old vectors', 'time-based data rotation', 'delete old data efficiently', 'social media feed search', 'news search', 'log search with retention', or 'how to keep only last N months of data'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"github","GitHub","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgithub.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":17,"slug":18,"type":15},"Architecture","architecture",{"name":20,"slug":21,"type":15},"Data Engineering","data-engineering",{"name":23,"slug":24,"type":15},"Qdrant","qdrant",{"name":26,"slug":27,"type":15},"Database","database",36978,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","2026-04-18T04:46:12.61255",null,4632,[34,35,36,37,38,39,40,41],"agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering",{"repoUrl":29,"stars":28,"forks":32,"topics":43,"description":44},[34,35,36,37,38,39,40,41],"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Ftree\u002FHEAD\u002Fskills\u002Fqdrant-scaling\u002Fscaling-data-volume\u002Fsliding-time-window","---\nname: qdrant-sliding-time-window\ndescription: \"Guides sliding time window scaling in Qdrant. Use when someone asks 'only recent data matters', 'how to expire old vectors', 'time-based data rotation', 'delete old data efficiently', 'social media feed search', 'news search', 'log search with retention', or 'how to keep only last N months of data'.\"\n---\n\n# Scaling with a Sliding Time Window\n\nUse when only recent data needs fast search -- social media posts, news articles, support tickets, logs, job listings. Old data either becomes irrelevant or can tolerate slower access.\n\nThree strategies: **shard rotation** (recommended), **collection rotation** (when per-period config differs), and **filter-and-delete** (simplest, for continuous cleanup).\n\n\n## Shard Rotation (Recommended)\n\nUse when: data has natural time boundaries (daily, weekly, monthly). Preferred because queries span all time periods in one request without application-level fan-out. [User-defined sharding](https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Foperations\u002Fdistributed_deployment\u002F?s=user-defined-sharding)\n\n1. Create a collection with user-defined sharding enabled\n2. Create one shard key per time period (e.g., `2025-01`, `2025-02`, ..., `2025-06`)\n3. Ingest data into the current period's shard key\n4. When a new period starts, create a new shard key and redirect writes\n5. Delete the oldest shard key outside the retention window\n\n- Deleting a shard key reclaims all resources instantly (no fragmentation, no optimizer overhead)\n- Pre-create the next period's shard key before rotation to avoid write disruption\n- Use `shard_key_selector` at query time to search only specific periods for efficiency\n- Shard keys can be placed on specific nodes for hot\u002Fcold tiering\n\n\n## Collection Rotation (Alias Swap)\n\nUse when: you need per-period collection configuration (e.g., different quantization or storage settings). [Collection aliases](https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Fcollections\u002F?s=collection-aliases)\n\n1. Create one collection per time period, point a write alias at the newest\n2. Query across all active collections in parallel, merge results client-side\n3. When a new period starts, create the new collection and swap the write alias [Switch collection](https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Fcollections\u002F?s=switch-collection)\n4. Drop the oldest collection outside the window\n\nTrade-off vs shard rotation: allows per-collection config differences, but requires application-level fan-out and more operational overhead.\n\n\n## Filter-and-Delete\n\nUse when: data arrives continuously without clear time boundaries, or you want the simplest setup.\n\n1. Store a `timestamp` payload on every point, create a payload index on it [Payload index](https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Findexing\u002F?s=payload-index)\n2. Filter to the desired window at query time using `range` condition [Range filter](https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fsearch\u002Ffiltering\u002F?s=range)\n3. Periodically delete expired points using delete-by-filter [Delete points](https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Fpoints\u002F?s=delete-points)\n\n- Run cleanup during off-peak hours in batches (10k-50k points) to avoid optimizer locks\n- Deletes are not free: tombstoned points degrade search until optimizer compacts segments\n- Does not reclaim disk instantly (compaction is asynchronous)\n\n\n## Hot\u002FCold Tiers\n\nUse when: recent data needs fast in-RAM search, older data should remain searchable at lower performance.\n\n- **Shard rotation:** place current shard key on fast-storage nodes, move older shard keys to cheaper nodes via shard placement. All queries still go through a single collection.\n- **Collection rotation:** keep current collection in RAM (`always_ram: true`), move older collections to mmap\u002Fon-disk vectors. [Quantization](https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Fquantization\u002F)\n\n\n## What NOT to Do\n\n- Do not use filter-and-delete for high-volume time-series with millions of daily deletes (use rotation instead)\n- Do not forget to index the timestamp field (range filters without an index cause full scans)\n- Do not use collection rotation when shard rotation would suffice (unnecessary fan-out complexity)\n- Do not drop a shard key or collection before verifying its period is fully outside the retention window\n- Do not skip pre-creating the next period's shard key or collection (write failures during rotation are hard to recover)\n",{"data":48,"body":49},{"name":4,"description":6},{"type":50,"children":51},"root",[52,61,67,94,101,115,170,202,208,220,250,255,260,265,320,338,344,349,387,393],{"type":53,"tag":54,"props":55,"children":57},"element","h1",{"id":56},"scaling-with-a-sliding-time-window",[58],{"type":59,"value":60},"text","Scaling with a Sliding Time Window",{"type":53,"tag":62,"props":63,"children":64},"p",{},[65],{"type":59,"value":66},"Use when only recent data needs fast search -- social media posts, news articles, support tickets, logs, job listings. Old data either becomes irrelevant or can tolerate slower access.",{"type":53,"tag":62,"props":68,"children":69},{},[70,72,78,80,85,87,92],{"type":59,"value":71},"Three strategies: ",{"type":53,"tag":73,"props":74,"children":75},"strong",{},[76],{"type":59,"value":77},"shard rotation",{"type":59,"value":79}," (recommended), ",{"type":53,"tag":73,"props":81,"children":82},{},[83],{"type":59,"value":84},"collection rotation",{"type":59,"value":86}," (when per-period config differs), and ",{"type":53,"tag":73,"props":88,"children":89},{},[90],{"type":59,"value":91},"filter-and-delete",{"type":59,"value":93}," (simplest, for continuous cleanup).",{"type":53,"tag":95,"props":96,"children":98},"h2",{"id":97},"shard-rotation-recommended",[99],{"type":59,"value":100},"Shard Rotation (Recommended)",{"type":53,"tag":62,"props":102,"children":103},{},[104,106],{"type":59,"value":105},"Use when: data has natural time boundaries (daily, weekly, monthly). Preferred because queries span all time periods in one request without application-level fan-out. ",{"type":53,"tag":107,"props":108,"children":112},"a",{"href":109,"rel":110},"https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Foperations\u002Fdistributed_deployment\u002F?s=user-defined-sharding",[111],"nofollow",[113],{"type":59,"value":114},"User-defined sharding",{"type":53,"tag":116,"props":117,"children":118},"ol",{},[119,125,155,160,165],{"type":53,"tag":120,"props":121,"children":122},"li",{},[123],{"type":59,"value":124},"Create a collection with user-defined sharding enabled",{"type":53,"tag":120,"props":126,"children":127},{},[128,130,137,139,145,147,153],{"type":59,"value":129},"Create one shard key per time period (e.g., ",{"type":53,"tag":131,"props":132,"children":134},"code",{"className":133},[],[135],{"type":59,"value":136},"2025-01",{"type":59,"value":138},", ",{"type":53,"tag":131,"props":140,"children":142},{"className":141},[],[143],{"type":59,"value":144},"2025-02",{"type":59,"value":146},", ..., ",{"type":53,"tag":131,"props":148,"children":150},{"className":149},[],[151],{"type":59,"value":152},"2025-06",{"type":59,"value":154},")",{"type":53,"tag":120,"props":156,"children":157},{},[158],{"type":59,"value":159},"Ingest data into the current period's shard key",{"type":53,"tag":120,"props":161,"children":162},{},[163],{"type":59,"value":164},"When a new period starts, create a new shard key and redirect writes",{"type":53,"tag":120,"props":166,"children":167},{},[168],{"type":59,"value":169},"Delete the oldest shard key outside the retention window",{"type":53,"tag":171,"props":172,"children":173},"ul",{},[174,179,184,197],{"type":53,"tag":120,"props":175,"children":176},{},[177],{"type":59,"value":178},"Deleting a shard key reclaims all resources instantly (no fragmentation, no optimizer overhead)",{"type":53,"tag":120,"props":180,"children":181},{},[182],{"type":59,"value":183},"Pre-create the next period's shard key before rotation to avoid write disruption",{"type":53,"tag":120,"props":185,"children":186},{},[187,189,195],{"type":59,"value":188},"Use ",{"type":53,"tag":131,"props":190,"children":192},{"className":191},[],[193],{"type":59,"value":194},"shard_key_selector",{"type":59,"value":196}," at query time to search only specific periods for efficiency",{"type":53,"tag":120,"props":198,"children":199},{},[200],{"type":59,"value":201},"Shard keys can be placed on specific nodes for hot\u002Fcold tiering",{"type":53,"tag":95,"props":203,"children":205},{"id":204},"collection-rotation-alias-swap",[206],{"type":59,"value":207},"Collection Rotation (Alias Swap)",{"type":53,"tag":62,"props":209,"children":210},{},[211,213],{"type":59,"value":212},"Use when: you need per-period collection configuration (e.g., different quantization or storage settings). ",{"type":53,"tag":107,"props":214,"children":217},{"href":215,"rel":216},"https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Fcollections\u002F?s=collection-aliases",[111],[218],{"type":59,"value":219},"Collection aliases",{"type":53,"tag":116,"props":221,"children":222},{},[223,228,233,245],{"type":53,"tag":120,"props":224,"children":225},{},[226],{"type":59,"value":227},"Create one collection per time period, point a write alias at the newest",{"type":53,"tag":120,"props":229,"children":230},{},[231],{"type":59,"value":232},"Query across all active collections in parallel, merge results client-side",{"type":53,"tag":120,"props":234,"children":235},{},[236,238],{"type":59,"value":237},"When a new period starts, create the new collection and swap the write alias ",{"type":53,"tag":107,"props":239,"children":242},{"href":240,"rel":241},"https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Fcollections\u002F?s=switch-collection",[111],[243],{"type":59,"value":244},"Switch collection",{"type":53,"tag":120,"props":246,"children":247},{},[248],{"type":59,"value":249},"Drop the oldest collection outside the window",{"type":53,"tag":62,"props":251,"children":252},{},[253],{"type":59,"value":254},"Trade-off vs shard rotation: allows per-collection config differences, but requires application-level fan-out and more operational overhead.",{"type":53,"tag":95,"props":256,"children":257},{"id":91},[258],{"type":59,"value":259},"Filter-and-Delete",{"type":53,"tag":62,"props":261,"children":262},{},[263],{"type":59,"value":264},"Use when: data arrives continuously without clear time boundaries, or you want the simplest setup.",{"type":53,"tag":116,"props":266,"children":267},{},[268,288,308],{"type":53,"tag":120,"props":269,"children":270},{},[271,273,279,281],{"type":59,"value":272},"Store a ",{"type":53,"tag":131,"props":274,"children":276},{"className":275},[],[277],{"type":59,"value":278},"timestamp",{"type":59,"value":280}," payload on every point, create a payload index on it ",{"type":53,"tag":107,"props":282,"children":285},{"href":283,"rel":284},"https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Findexing\u002F?s=payload-index",[111],[286],{"type":59,"value":287},"Payload index",{"type":53,"tag":120,"props":289,"children":290},{},[291,293,299,301],{"type":59,"value":292},"Filter to the desired window at query time using ",{"type":53,"tag":131,"props":294,"children":296},{"className":295},[],[297],{"type":59,"value":298},"range",{"type":59,"value":300}," condition ",{"type":53,"tag":107,"props":302,"children":305},{"href":303,"rel":304},"https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fsearch\u002Ffiltering\u002F?s=range",[111],[306],{"type":59,"value":307},"Range filter",{"type":53,"tag":120,"props":309,"children":310},{},[311,313],{"type":59,"value":312},"Periodically delete expired points using delete-by-filter ",{"type":53,"tag":107,"props":314,"children":317},{"href":315,"rel":316},"https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Fpoints\u002F?s=delete-points",[111],[318],{"type":59,"value":319},"Delete points",{"type":53,"tag":171,"props":321,"children":322},{},[323,328,333],{"type":53,"tag":120,"props":324,"children":325},{},[326],{"type":59,"value":327},"Run cleanup during off-peak hours in batches (10k-50k points) to avoid optimizer locks",{"type":53,"tag":120,"props":329,"children":330},{},[331],{"type":59,"value":332},"Deletes are not free: tombstoned points degrade search until optimizer compacts segments",{"type":53,"tag":120,"props":334,"children":335},{},[336],{"type":59,"value":337},"Does not reclaim disk instantly (compaction is asynchronous)",{"type":53,"tag":95,"props":339,"children":341},{"id":340},"hotcold-tiers",[342],{"type":59,"value":343},"Hot\u002FCold Tiers",{"type":53,"tag":62,"props":345,"children":346},{},[347],{"type":59,"value":348},"Use when: recent data needs fast in-RAM search, older data should remain searchable at lower performance.",{"type":53,"tag":171,"props":350,"children":351},{},[352,362],{"type":53,"tag":120,"props":353,"children":354},{},[355,360],{"type":53,"tag":73,"props":356,"children":357},{},[358],{"type":59,"value":359},"Shard rotation:",{"type":59,"value":361}," place current shard key on fast-storage nodes, move older shard keys to cheaper nodes via shard placement. All queries still go through a single collection.",{"type":53,"tag":120,"props":363,"children":364},{},[365,370,372,378,380],{"type":53,"tag":73,"props":366,"children":367},{},[368],{"type":59,"value":369},"Collection rotation:",{"type":59,"value":371}," keep current collection in RAM (",{"type":53,"tag":131,"props":373,"children":375},{"className":374},[],[376],{"type":59,"value":377},"always_ram: true",{"type":59,"value":379},"), move older collections to mmap\u002Fon-disk vectors. ",{"type":53,"tag":107,"props":381,"children":384},{"href":382,"rel":383},"https:\u002F\u002Fsearch.qdrant.tech\u002Fmd\u002Fdocumentation\u002Fmanage-data\u002Fquantization\u002F",[111],[385],{"type":59,"value":386},"Quantization",{"type":53,"tag":95,"props":388,"children":390},{"id":389},"what-not-to-do",[391],{"type":59,"value":392},"What NOT to Do",{"type":53,"tag":171,"props":394,"children":395},{},[396,401,406,411,416],{"type":53,"tag":120,"props":397,"children":398},{},[399],{"type":59,"value":400},"Do not use filter-and-delete for high-volume time-series with millions of daily deletes (use rotation instead)",{"type":53,"tag":120,"props":402,"children":403},{},[404],{"type":59,"value":405},"Do not forget to index the timestamp field (range filters without an index cause full scans)",{"type":53,"tag":120,"props":407,"children":408},{},[409],{"type":59,"value":410},"Do not use collection rotation when shard rotation would suffice (unnecessary fan-out complexity)",{"type":53,"tag":120,"props":412,"children":413},{},[414],{"type":59,"value":415},"Do not drop a shard key or collection before verifying its period is fully outside the retention window",{"type":53,"tag":120,"props":417,"children":418},{},[419],{"type":59,"value":420},"Do not skip pre-creating the next period's shard key or collection (write failures during rotation are hard to recover)",{"items":422,"total":525},[423,439,453,469,483,499,513],{"slug":424,"name":424,"fn":425,"description":426,"org":427,"tags":428,"stars":28,"repoUrl":29,"updatedAt":438},"qdrant-horizontal-scaling","guide Qdrant horizontal scaling decisions","Diagnoses and guides Qdrant horizontal scaling decisions. Use when someone asks 'vertical or horizontal?', 'how many nodes?', 'how many shards?', 'how to add nodes', 'resharding', 'data doesn't fit', or 'need more capacity'. Also use when data growth outpaces current deployment.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[429,432,433,436,437],{"name":430,"slug":431,"type":15},"AI Infrastructure","ai-infrastructure",{"name":17,"slug":18,"type":15},{"name":434,"slug":435,"type":15},"Capacity Planning","capacity-planning",{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},"2026-04-18T04:46:16.349561",{"slug":440,"name":440,"fn":441,"description":442,"org":443,"tags":444,"stars":28,"repoUrl":29,"updatedAt":452},"qdrant-indexing-performance-optimization","optimize Qdrant indexing performance","Diagnoses and fixes slow Qdrant indexing and data ingestion. Use when someone reports 'uploads are slow', 'indexing takes forever', 'optimizer is stuck', 'HNSW build time too long', or 'data uploaded but search is bad'. Also use when optimizer status shows errors, segments won't merge, or indexing threshold questions arise.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[445,446,447,450,451],{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":448,"slug":449,"type":15},"ETL","etl",{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},"2026-04-18T04:46:02.766357",{"slug":454,"name":454,"fn":455,"description":456,"org":457,"tags":458,"stars":28,"repoUrl":29,"updatedAt":468},"qdrant-memory-usage-optimization","optimize Qdrant memory usage","Diagnoses and reduces Qdrant memory usage. Use when someone reports 'memory too high', 'RAM keeps growing', 'node crashed', 'out of memory', 'memory leak', or asks 'why is memory usage so high?', 'how to reduce RAM?'. Also use when memory doesn't match calculations, quantization didn't help, or nodes crash during recovery.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[459,462,463,466,467],{"name":460,"slug":461,"type":15},"Cost Optimization","cost-optimization",{"name":26,"slug":27,"type":15},{"name":464,"slug":465,"type":15},"Observability","observability",{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},"2026-04-18T04:46:01.525023",{"slug":470,"name":470,"fn":471,"description":472,"org":473,"tags":474,"stars":28,"repoUrl":29,"updatedAt":482},"qdrant-minimize-latency","minimize Qdrant query latency","Guides Qdrant query latency optimization. Use when someone asks 'search is slow', 'how to reduce latency', 'p99 is too high', 'tail latency', 'single query too slow', 'how to make search faster', or 'latency spikes'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[475,476,477,478,479],{"name":17,"slug":18,"type":15},{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":480,"slug":481,"type":15},"Search","search","2026-04-18T04:46:10.126667",{"slug":484,"name":484,"fn":485,"description":486,"org":487,"tags":488,"stars":28,"repoUrl":29,"updatedAt":498},"qdrant-monitoring-debugging","debug Qdrant production issues with metrics","Diagnoses Qdrant production issues using metrics and observability tools. Use when someone reports 'optimizer stuck', 'indexing too slow', 'memory too high', 'OOM crash', 'queries are slow', 'latency spike', or 'search was fast now it's slow'. Also use when performance degrades without obvious config changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[489,492,495,496,497],{"name":490,"slug":491,"type":15},"Debugging","debugging",{"name":493,"slug":494,"type":15},"Monitoring","monitoring",{"name":464,"slug":465,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},"2026-04-18T04:46:06.450784",{"slug":500,"name":500,"fn":501,"description":502,"org":503,"tags":504,"stars":28,"repoUrl":29,"updatedAt":512},"qdrant-monitoring-setup","set up Qdrant monitoring and alerting","Guides Qdrant monitoring setup including Prometheus scraping, health probes, Hybrid Cloud metrics, alerting, and log centralization. Use when someone asks 'how to set up monitoring', 'Prometheus config', 'Grafana dashboard', 'health check endpoints', 'how to scrape Hybrid Cloud', 'what alerts to set', 'how to centralize logs', or 'audit logging'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[505,506,507,508,509],{"name":430,"slug":431,"type":15},{"name":493,"slug":494,"type":15},{"name":464,"slug":465,"type":15},{"name":23,"slug":24,"type":15},{"name":510,"slug":511,"type":15},"SRE","sre","2026-04-18T04:46:05.217192",{"slug":514,"name":514,"fn":515,"description":516,"org":517,"tags":518,"stars":28,"repoUrl":29,"updatedAt":524},"qdrant-scaling-data-volume","scale Qdrant data volume","Guides Qdrant data volume scaling decisions. Use when someone asks 'data doesn't fit on one node', 'too much data', 'need more storage', 'vertical or horizontal scaling', 'tenant scaling', 'time window rotation', or 'data growth exceeds capacity'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[519,520,521,522,523],{"name":430,"slug":431,"type":15},{"name":17,"slug":18,"type":15},{"name":434,"slug":435,"type":15},{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},"2026-04-18T04:46:07.684464",15,{"items":527,"total":648},[528,536,544,552,560,568,576,584,596,608,624,636],{"slug":424,"name":424,"fn":425,"description":426,"org":529,"tags":530,"stars":28,"repoUrl":29,"updatedAt":438},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[531,532,533,534,535],{"name":430,"slug":431,"type":15},{"name":17,"slug":18,"type":15},{"name":434,"slug":435,"type":15},{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"slug":440,"name":440,"fn":441,"description":442,"org":537,"tags":538,"stars":28,"repoUrl":29,"updatedAt":452},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[539,540,541,542,543],{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":448,"slug":449,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"slug":454,"name":454,"fn":455,"description":456,"org":545,"tags":546,"stars":28,"repoUrl":29,"updatedAt":468},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[547,548,549,550,551],{"name":460,"slug":461,"type":15},{"name":26,"slug":27,"type":15},{"name":464,"slug":465,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"slug":470,"name":470,"fn":471,"description":472,"org":553,"tags":554,"stars":28,"repoUrl":29,"updatedAt":482},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[555,556,557,558,559],{"name":17,"slug":18,"type":15},{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":480,"slug":481,"type":15},{"slug":484,"name":484,"fn":485,"description":486,"org":561,"tags":562,"stars":28,"repoUrl":29,"updatedAt":498},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[563,564,565,566,567],{"name":490,"slug":491,"type":15},{"name":493,"slug":494,"type":15},{"name":464,"slug":465,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"slug":500,"name":500,"fn":501,"description":502,"org":569,"tags":570,"stars":28,"repoUrl":29,"updatedAt":512},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[571,572,573,574,575],{"name":430,"slug":431,"type":15},{"name":493,"slug":494,"type":15},{"name":464,"slug":465,"type":15},{"name":23,"slug":24,"type":15},{"name":510,"slug":511,"type":15},{"slug":514,"name":514,"fn":515,"description":516,"org":577,"tags":578,"stars":28,"repoUrl":29,"updatedAt":524},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[579,580,581,582,583],{"name":430,"slug":431,"type":15},{"name":17,"slug":18,"type":15},{"name":434,"slug":435,"type":15},{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"slug":585,"name":585,"fn":586,"description":587,"org":588,"tags":589,"stars":28,"repoUrl":29,"updatedAt":595},"qdrant-scaling-qps","scale Qdrant query throughput","Guides Qdrant query throughput (QPS) scaling. Use when someone asks 'how to increase QPS', 'need more throughput', 'queries per second too low', 'batch search', 'read replicas', or 'how to handle more concurrent queries'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[590,591,592,593,594],{"name":430,"slug":431,"type":15},{"name":17,"slug":18,"type":15},{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},"2026-04-18T04:46:08.905219",{"slug":597,"name":597,"fn":598,"description":599,"org":600,"tags":601,"stars":28,"repoUrl":29,"updatedAt":607},"qdrant-scaling-query-volume","scale Qdrant query volume and pagination","Guides Qdrant query volume scaling. Use when someone asks 'query returns too many results', 'scroll performance', 'large limit values', 'paginating search results', 'fetching many vectors', or 'high cardinality results'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[602,603,604,605,606],{"name":17,"slug":18,"type":15},{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":480,"slug":481,"type":15},"2026-04-18T04:46:11.371326",{"slug":609,"name":609,"fn":610,"description":611,"org":612,"tags":613,"stars":28,"repoUrl":29,"updatedAt":623},"qdrant-search-quality-diagnosis","diagnose Qdrant search quality issues","Diagnoses Qdrant search quality issues. Use when someone reports 'results are bad', 'wrong results', 'not relevant results', 'missing matches', 'recall is low', 'approximate search worse than exact', 'which embedding model', or 'quality dropped after quantization'. Also use when search quality degrades without obvious changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[614,617,620,621,622],{"name":615,"slug":616,"type":15},"Analytics","analytics",{"name":618,"slug":619,"type":15},"Data Quality","data-quality",{"name":490,"slug":491,"type":15},{"name":23,"slug":24,"type":15},{"name":480,"slug":481,"type":15},"2026-04-18T04:46:17.579894",{"slug":625,"name":625,"fn":626,"description":627,"org":628,"tags":629,"stars":28,"repoUrl":29,"updatedAt":635},"qdrant-search-speed-optimization","optimize Qdrant search speed","Diagnoses and fixes slow Qdrant search. Use when someone reports 'search is slow', 'high latency', 'queries take too long', 'low QPS', 'throughput too low', 'filtered search is slow', or 'search was fast but now it's slow'. Also use when search performance degrades after config changes or data growth.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[630,631,632,633,634],{"name":615,"slug":616,"type":15},{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":480,"slug":481,"type":15},"2026-04-18T04:46:03.987332",{"slug":637,"name":637,"fn":638,"description":639,"org":640,"tags":641,"stars":28,"repoUrl":29,"updatedAt":647},"qdrant-search-strategies","select optimal Qdrant search strategies","Guides Qdrant search strategy selection. Use when someone asks 'should I use hybrid search?', 'BM25 or sparse vectors?', 'how to rerank?', 'results are not relevant', 'I don't get needed results from my dataset but they're there', 'retrieval quality is not good enough', 'results too similar', 'need diversity', 'MMR', 'relevance feedback', 'recommendation API', 'discovery API', 'ColBERT reranking', or 'missing keyword matches'",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[642,643,644,645,646],{"name":430,"slug":431,"type":15},{"name":615,"slug":616,"type":15},{"name":17,"slug":18,"type":15},{"name":23,"slug":24,"type":15},{"name":480,"slug":481,"type":15},"2026-04-18T04:46:18.812306",45]