Indexing and searching NuGet.org with Azure Functions and Search
summary
Builds a reverse-package index that maps public types to NuGet package ID/version using Azure Functions and Azure Search: a NuGet catalog trigger scans the v3 catalog, timer triggers push package ops to queues, a downloader mirrors nupkgs, indexing reads PE headers with PEReader metadata (no Assembly.Load), and a custom Azure Search output binding writes documents. Full remix of the catalog (≈2.1M packages, ~4.2M catalog leaves, 8,400 pages) completes in ~12 hours versus two weeks previously, and the pipeline runs and scales independently.
AI-written summary · about
chapters (16)
- 0:00Intro
- 3:08NuGet over time...
- 4:22NuGet talks to a repository
- 5:08V3 Protocol
- 7:58Catalog seems interesting!
- 11:28What do we need?
- 12:57Sounds like functions?
- 19:01Functions best practices
- 21:59Bindings
- 31:45We're making progress!
- 36:10System.Reflection. Metadata
- 38:02Azure Search
- 43:43Do one thing well
- 48:54HTTP trigger binding
- 52:26One issue left...
- 56:41Closing thoughts...
related talks
52mIndexing and searching NuGet.org with Azure Functions and Search
44mSupercharge your data with Azure AI Search and OpenAI
11mTotal Rewrite: A Story About F# and Azure Functions in Production
01h 16mAzure SQL ❤️ Open AI
57mAn Introduction to Elasticsearch for .NET Developers
40mUnleashing the Power of Vector Search with Azure SQL Database
36mLessons from building GitHub code search
03h 08mAzure Cosmos DB Conf 2025
