[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CS76PMPEMBC3CVKDAN1B7C":3,"skill-same:01M6CS76PMPEMBC3CVKDAN1B7C":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":43,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M6CS76PMPEMBC3CVKDAN1B7C","azure-search-documents-dotnet",null,"Azure AI Search SDK for .NET (Azure.Search.Documents). Use for building search applications with full-text, vector, semantic, and hybrid search.","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-search-documents-dotnet\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"dotnet","documents","azure","azure search documents dotnet","search","search documents","sdk","azure ai","vector","applications","text","use","community","2026-11-10 10:12:30",false,"---\nname: azure-search-documents-dotnet\ndescription: Azure AI Search SDK for .NET (Azure.Search.Documents). Use for building search applications with full-text, vector, semantic, and hybrid search.\nrisk: unknown\nsource: community\ndate_added: '2026-02-27'\n---\n\n# Azure.Search.Documents (.NET)\n\nBuild search applications with full-text, vector, semantic, and hybrid search capabilities.\n\n## Installation\n\n```bash\ndotnet add package Azure.Search.Documents\ndotnet add package Azure.Identity\n```\n\n**Current Versions**: Stable v11.7.0, Preview v11.8.0-beta.1\n\n## Environment Variables\n\n```bash\nSEARCH_ENDPOINT=https:\u002F\u002F\u003Csearch-service>.search.windows.net\nSEARCH_INDEX_NAME=\u003Cindex-name>\n# For API key auth (not recommended for production)\nSEARCH_API_KEY=\u003Capi-key>\n```\n\n## Authentication\n\n**DefaultAzureCredential (preferred)**:\n```csharp\nusing Azure.Identity;\nusing Azure.Search.Documents;\n\nvar credential = new DefaultAzureCredential();\nvar client = new SearchClient(\n    new Uri(Environment.GetEnvironmentVariable(\"SEARCH_ENDPOINT\")),\n    Environment.GetEnvironmentVariable(\"SEARCH_INDEX_NAME\"),\n    credential);\n```\n\n**API Key**:\n```csharp\nusing Azure;\nusing Azure.Search.Documents;\n\nvar credential = new AzureKeyCredential(\n    Environment.GetEnvironmentVariable(\"SEARCH_API_KEY\"));\nvar client = new SearchClient(\n    new Uri(Environment.GetEnvironmentVariable(\"SEARCH_ENDPOINT\")),\n    Environment.GetEnvironmentVariable(\"SEARCH_INDEX_NAME\"),\n    credential);\n```\n\n## Client Selection\n\n| Client | Purpose |\n|--------|---------|\n| `SearchClient` | Query indexes, upload\u002Fupdate\u002Fdelete documents |\n| `SearchIndexClient` | Create\u002Fmanage indexes, synonym maps |\n| `SearchIndexerClient` | Manage indexers, skillsets, data sources |\n\n## Index Creation\n\n### Using FieldBuilder (Recommended)\n\n```csharp\nusing Azure.Search.Documents.Indexes;\nusing Azure.Search.Documents.Indexes.Models;\n\n\u002F\u002F Define model with attributes\npublic class Hotel\n{\n    [SimpleField(IsKey = true, IsFilterable = true)]\n    public string HotelId { get; set; }\n\n    [SearchableField(IsSortable = true)]\n    public string HotelName { get; set; }\n\n    [SearchableField(AnalyzerName = LexicalAnalyzerName.EnLucene)]\n    public string Description { get; set; }\n\n    [SimpleField(IsFilterable = true, IsSortable = true, IsFacetable = true)]\n    public double? Rating { get; set; }\n\n    [VectorSearchField(VectorSearchDimensions = 1536, VectorSearchProfileName = \"vector-profile\")]\n    public ReadOnlyMemory\u003Cfloat>? DescriptionVector { get; set; }\n}\n\n\u002F\u002F Create index\nvar indexClient = new SearchIndexClient(endpoint, credential);\nvar fieldBuilder = new FieldBuilder();\nvar fields = fieldBuilder.Build(typeof(Hotel));\n\nvar index = new SearchIndex(\"hotels\")\n{\n    Fields = fields,\n    VectorSearch = new VectorSearch\n    {\n        Profiles = { new VectorSearchProfile(\"vector-profile\", \"hnsw-algo\") },\n        Algorithms = { new HnswAlgorithmConfiguration(\"hnsw-algo\") }\n    }\n};\n\nawait indexClient.CreateOrUpdateIndexAsync(index);\n```\n\n### Manual Field Definition\n\n```csharp\nvar index = new SearchIndex(\"hotels\")\n{\n    Fields =\n    {\n        new SimpleField(\"hotelId\", SearchFieldDataType.String) { IsKey = true, IsFilterable = true },\n        new SearchableField(\"hotelName\") { IsSortable = true },\n        new SearchableField(\"description\") { AnalyzerName = LexicalAnalyzerName.EnLucene },\n        new SimpleField(\"rating\", SearchFieldDataType.Double) { IsFilterable = true, IsSortable = true },\n        new SearchField(\"descriptionVector\", SearchFieldDataType.Collection(SearchFieldDataType.Single))\n        {\n            VectorSearchDimensions = 1536,\n            VectorSearchProfileName = \"vector-profile\"\n        }\n    }\n};\n```\n\n## Document Operations\n\n```csharp\nvar searchClient = new SearchClient(endpoint, indexName, credential);\n\n\u002F\u002F Upload (add new)\nvar hotels = new[] { new Hotel { HotelId = \"1\", HotelName = \"Hotel A\" } };\nawait searchClient.UploadDocumentsAsync(hotels);\n\n\u002F\u002F Merge (update existing)\nawait searchClient.MergeDocumentsAsync(hotels);\n\n\u002F\u002F Merge or Upload (upsert)\nawait searchClient.MergeOrUploadDocumentsAsync(hotels);\n\n\u002F\u002F Delete\nawait searchClient.DeleteDocumentsAsync(\"hotelId\", new[] { \"1\", \"2\" });\n\n\u002F\u002F Batch operations\nvar batch = IndexDocumentsBatch.Create(\n    IndexDocumentsAction.Upload(hotel1),\n    IndexDocumentsAction.Merge(hotel2),\n    IndexDocumentsAction.Delete(hotel3));\nawait searchClient.IndexDocumentsAsync(batch);\n```\n\n## Search Patterns\n\n### Basic Search\n\n```csharp\nvar options = new SearchOptions\n{\n    Filter = \"rating ge 4\",\n    OrderBy = { \"rating desc\" },\n    Select = { \"hotelId\", \"hotelName\", \"rating\" },\n    Size = 10,\n    Skip = 0,\n    IncludeTotalCount = true\n};\n\nSearchResults\u003CHotel> results = await searchClient.SearchAsync\u003CHotel>(\"luxury\", options);\n\nConsole.WriteLine($\"Total: {results.TotalCount}\");\nawait foreach (SearchResult\u003CHotel> result in results.GetResultsAsync())\n{\n    Console.WriteLine($\"{result.Document.HotelName} (Score: {result.Score})\");\n}\n```\n\n### Faceted Search\n\n```csharp\nvar options = new SearchOptions\n{\n    Facets = { \"rating,count:5\", \"category\" }\n};\n\nvar results = await searchClient.SearchAsync\u003CHotel>(\"*\", options);\n\nforeach (var facet in results.Value.Facets[\"rating\"])\n{\n    Console.WriteLine($\"Rating {facet.Value}: {facet.Count}\");\n}\n```\n\n### Autocomplete and Suggestions\n\n```csharp\n\u002F\u002F Autocomplete\nvar autocompleteOptions = new AutocompleteOptions { Mode = AutocompleteMode.OneTermWithContext };\nvar autocomplete = await searchClient.AutocompleteAsync(\"lux\", \"suggester-name\", autocompleteOptions);\n\n\u002F\u002F Suggestions\nvar suggestOptions = new SuggestOptions { UseFuzzyMatching = true };\nvar suggestions = await searchClient.SuggestAsync\u003CHotel>(\"lux\", \"suggester-name\", suggestOptions);\n```\n\n## Vector Search\n\nSee references\u002Fvector-search.md for detailed patterns.\n\n```csharp\nusing Azure.Search.Documents.Models;\n\n\u002F\u002F Pure vector search\nvar vectorQuery = new VectorizedQuery(embedding)\n{\n    KNearestNeighborsCount = 5,\n    Fields = { \"descriptionVector\" }\n};\n\nvar options = new SearchOptions\n{\n    VectorSearch = new VectorSearchOptions\n    {\n        Queries = { vectorQuery }\n    }\n};\n\nvar results = await searchClient.SearchAsync\u003CHotel>(null, options);\n```\n\n## Semantic Search\n\nSee references\u002Fsemantic-search.md for detailed patterns.\n\n```csharp\nvar options = new SearchOptions\n{\n    QueryType = SearchQueryType.Semantic,\n    SemanticSearch = new SemanticSearchOptions\n    {\n        SemanticConfigurationName = \"my-semantic-config\",\n        QueryCaption = new QueryCaption(QueryCaptionType.Extractive),\n        QueryAnswer = new QueryAnswer(QueryAnswerType.Extractive)\n    }\n};\n\nvar results = await searchClient.SearchAsync\u003CHotel>(\"best hotel for families\", options);\n\n\u002F\u002F Access semantic answers\nforeach (var answer in results.Value.SemanticSearch.Answers)\n{\n    Console.WriteLine($\"Answer: {answer.Text} (Score: {answer.Score})\");\n}\n\n\u002F\u002F Access captions\nawait foreach (var result in results.Value.GetResultsAsync())\n{\n    var caption = result.SemanticSearch?.Captions?.FirstOrDefault();\n    Console.WriteLine($\"Caption: {caption?.Text}\");\n}\n```\n\n## Hybrid Search (Vector + Keyword + Semantic)\n\n```csharp\nvar vectorQuery = new VectorizedQuery(embedding)\n{\n    KNearestNeighborsCount = 5,\n    Fields = { \"descriptionVector\" }\n};\n\nvar options = new SearchOptions\n{\n    QueryType = SearchQueryType.Semantic,\n    SemanticSearch = new SemanticSearchOptions\n    {\n        SemanticConfigurationName = \"my-semantic-config\"\n    },\n    VectorSearch = new VectorSearchOptions\n    {\n        Queries = { vectorQuery }\n    }\n};\n\n\u002F\u002F Combines keyword search, vector search, and semantic ranking\nvar results = await searchClient.SearchAsync\u003CHotel>(\"luxury beachfront\", options);\n```\n\n## Field Attributes Reference\n\n| Attribute | Purpose |\n|-----------|---------|\n| `SimpleField` | Non-searchable field (filters, sorting, facets) |\n| `SearchableField` | Full-text searchable field |\n| `VectorSearchField` | Vector embedding field |\n| `IsKey = true` | Document key (required, one per index) |\n| `IsFilterable = true` | Enable $filter expressions |\n| `IsSortable = true` | Enable $orderby |\n| `IsFacetable = true` | Enable faceted navigation |\n| `IsHidden = true` | Exclude from results |\n| `AnalyzerName` | Specify text analyzer |\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var results = await searchClient.SearchAsync\u003CHotel>(\"query\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 404)\n{\n    Console.WriteLine(\"Index not found\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Search error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Best Practices\n\n1. **Use `DefaultAzureCredential`** over API keys for production\n2. **Use `FieldBuilder`** with model attributes for type-safe index definitions\n3. **Use `CreateOrUpdateIndexAsync`** for idempotent index creation\n4. **Batch document operations** for better throughput\n5. **Use `Select`** to return only needed fields\n6. **Configure semantic search** for natural language queries\n7. **Combine vector + keyword + semantic** for best relevance\n\n## Reference Files\n\n| File | Contents |\n|------|----------|\n| references\u002Fvector-search.md | Vector search, hybrid search, vectorizers |\n| references\u002Fsemantic-search.md | Semantic ranking, captions, answers |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure.Search.Documents (.NET)\n\nBuild search applications with full-text, vector, semantic, and hybrid search capabilities.\n\n## Installation\n\n```bash\ndotnet add package Azure.Search.Documents\ndotnet add package Azure.Identity\n```\n\n**Current Versions**: Stable v11.7.0, Preview v11.8.0-beta.1\n\n## Environment Variables\n\n```bash\nSEARCH_ENDPOINT=https:\u002F\u002F\u003Csearch-service>.search.windows.net\nSEARCH_INDEX_NAME=\u003Cindex-name>\n# For API key auth (not recommended for production)\nSEARCH_API_KEY=\u003Capi-key>\n```\n\n## Authentication\n\n**DefaultAzureCredential (preferred)**:\n```csharp\nusing Azure.Identity;\nusing Azure.Search.Documents;\n\nvar credential = new DefaultAzureCredential();\nvar client = new SearchClient(\n    new Uri(Environment.GetEnvironmentVariable(\"SEARCH_ENDPOINT\")),\n    Environment.GetEnvironmentVariable(\"SEARCH_INDEX_NAME\"),\n    credential);\n```\n\n**API Key**:\n```csharp\nusing Azure;\nusing Azure.Search.Documents;\n\nvar credential = new AzureKeyCredential(\n    Environment.GetEnvironmentVariable(\"SEARCH_API_KEY\"));\nvar client = new SearchClient(\n    new Uri(Environment.GetEnvironmentVariable(\"SEARCH_ENDPOINT\")),\n    Environment.GetEnvironmentVariable(\"SEARCH_INDEX_NAME\"),\n    credential);\n```\n\n## Client Selection\n\n| Client | Purpose |\n|--------|---------|\n| `SearchClient` | Query indexes, upload\u002Fupdate\u002Fdelete documents |\n| `SearchIndexClient` | Create\u002Fmanage indexes, synonym maps |\n| `SearchIndexerClient` | Manage indexers, skillsets, data sources |\n\n## Index Creation\n\n### Using FieldBuilder (Recommended)\n\n```csharp\nusing Azure.Search.Documents.Indexes;\nusing Azure.Search.Documents.Indexes.Models;\n\n\u002F\u002F Define model with attributes\npublic class Hotel\n{\n    [SimpleField(IsKey = true, IsFilterable = true)]\n    public string HotelId { get; set; }\n\n    [SearchableField(IsSortable = true)]\n    public string HotelName { get; set; }\n\n    [SearchableField(AnalyzerName = LexicalAnalyzerName.EnLucene)]\n    public string Description { get; set; }\n\n    [SimpleField(IsFilterable = true, IsSortable = true, IsFacetable = true)]\n    public double? Rating { get; set; }\n\n    [VectorSearchField(VectorSearchDimensions = 1536, VectorSearchProfileName = \"vector-profile\")]\n    public ReadOnlyMemory\u003Cfloat>? DescriptionVector { get; set; }\n}\n\n\u002F\u002F Create index\nvar indexClient = new SearchIndexClient(endpoint, credential);\nvar fieldBuilder = new FieldBuilder();\nvar fields = fieldBuilder.Build(typeof(Hotel));\n\nvar index = new SearchIndex(\"hotels\")\n{\n    Fields = fields,\n    VectorSearch = new VectorSearch\n    {\n        Profiles = { new VectorSearchProfile(\"vector-profile\", \"hnsw-algo\") },\n        Algorithms = { new HnswAlgorithmConfiguration(\"hnsw-algo\") }\n    }\n};\n\nawait indexClient.CreateOrUpdateIndexAsync(index);\n```\n\n### Manual Field Definition\n\n```csharp\nvar index = new SearchIndex(\"hotels\")\n{\n    Fields =\n    {\n        new SimpleField(\"hotelId\", SearchFieldDataType.String) { IsKey = true, IsFilterable = true },\n        new SearchableField(\"hotelName\") { IsSortable = true },\n        new SearchableField(\"description\") { AnalyzerName = LexicalAnalyzerName.EnLucene },\n        new SimpleField(\"rating\", SearchFieldDataType.Double) { IsFilterable = true, IsSortable = true },\n        new SearchField(\"descriptionVector\", SearchFieldDataType.Collection(SearchFieldDataType.Single))\n        {\n            VectorSearchDimensions = 1536,\n            VectorSearchProfileName = \"vector-profile\"\n        }\n    }\n};\n```\n\n## Document Operations\n\n```csharp\nvar searchClient = new SearchClient(endpoint, indexName, credential);\n\n\u002F\u002F Upload (add new)\nvar hotels = new[] { new Hotel { HotelId = \"1\", HotelName = \"Hotel A\" } };\nawait searchClient.UploadDocumentsAsync(hotels);\n\n\u002F\u002F Merge (update existing)\nawait searchClient.MergeDocumentsAsync(hotels);\n\n\u002F\u002F Merge or Upload (upsert)\nawait searchClient.MergeOrUploadDocumentsAsync(hotels);\n\n\u002F\u002F Delete\nawait searchClient.DeleteDocumentsAsync(\"hotelId\", new[] { \"1\", \"2\" });\n\n\u002F\u002F Batch operations\nvar batch = IndexDocumentsBatch.Create(\n    IndexDocumentsAction.Upload(hotel1),\n    IndexDocumentsAction.Merge(hotel2),\n    IndexDocumentsAction.Delete(hotel3));\nawait searchClient.IndexDocumentsAsync(batch);\n```\n\n## Search Patterns\n\n### Basic Search\n\n```csharp\nvar options = new SearchOptions\n{\n    Filter = \"rating ge 4\",\n    OrderBy = { \"rating desc\" },\n    Select = { \"hotelId\", \"hotelName\", \"rating\" },\n    Size = 10,\n    Skip = 0,\n    IncludeTotalCount = true\n};\n\nSearchResults\u003CHotel> results = await searchClient.SearchAsync\u003CHotel>(\"luxury\", options);\n\nConsole.WriteLine($\"Total: {results.TotalCount}\");\nawait foreach (SearchResult\u003CHotel> result in results.GetResultsAsync())\n{\n    Console.WriteLine($\"{result.Document.HotelName} (Score: {result.Score})\");\n}\n```\n\n### Faceted Search\n\n```csharp\nvar options = new SearchOptions\n{\n    Facets = { \"rating,count:5\", \"category\" }\n};\n\nvar results = await searchClient.SearchAsync\u003CHotel>(\"*\", options);\n\nforeach (var facet in results.Value.Facets[\"rating\"])\n{\n    Console.WriteLine($\"Rating {facet.Value}: {facet.Count}\");\n}\n```\n\n### Autocomplete and Suggestions\n\n```csharp\n\u002F\u002F Autocomplete\nvar autocompleteOptions = new AutocompleteOptions { Mode = AutocompleteMode.OneTermWithContext };\nvar autocomplete = await searchClient.AutocompleteAsync(\"lux\", \"suggester-name\", autocompleteOptions);\n\n\u002F\u002F Suggestions\nvar suggestOptions = new SuggestOptions { UseFuzzyMatching = true };\nvar suggestions = await searchClient.SuggestAsync\u003CHotel>(\"lux\", \"suggester-name\", suggestOptions);\n```\n\n## Vector Search\n\nSee references\u002Fvector-search.md for detailed patterns.\n\n```csharp\nusing Azure.Search.Documents.Models;\n\n\u002F\u002F Pure vector search\nvar vectorQuery = new VectorizedQuery(embedding)\n{\n    KNearestNeighborsCount = 5,\n    Fields = { \"descriptionVector\" }\n};\n\nvar options = new SearchOptions\n{\n    VectorSearch = new VectorSearchOptions\n    {\n        Queries = { vectorQuery }\n    }\n};\n\nvar results = await searchClient.SearchAsync\u003CHotel>(null, options);\n```\n\n## Semantic Search\n\nSee references\u002Fsemantic-search.md for detailed patterns.\n\n```csharp\nvar options = new SearchOptions\n{\n    QueryType = SearchQueryType.Semantic,\n    SemanticSearch = new SemanticSearchOptions\n    {\n        SemanticConfigurationName = \"my-semantic-config\",\n        QueryCaption = new QueryCaption(QueryCaptionType.Extractive),\n        QueryAnswer = new QueryAnswer(QueryAnswerType.Extractive)\n    }\n};\n\nvar results = await searchClient.SearchAsync\u003CHotel>(\"best hotel for families\", options);\n\n\u002F\u002F Access semantic answers\nforeach (var answer in results.Value.SemanticSearch.Answers)\n{\n    Console.WriteLine($\"Answer: {answer.Text} (Score: {answer.Score})\");\n}\n\n\u002F\u002F Access captions\nawait foreach (var result in results.Value.GetResultsAsync())\n{\n    var caption = result.SemanticSearch?.Captions?.FirstOrDefault();\n    Console.WriteLine($\"Caption: {caption?.Text}\");\n}\n```\n\n## Hybrid Search (Vector + Keyword + Semantic)\n\n```csharp\nvar vectorQuery = new VectorizedQuery(embedding)\n{\n    KNearestNeighborsCount = 5,\n    Fields = { \"descriptionVector\" }\n};\n\nvar options = new SearchOptions\n{\n    QueryType = SearchQueryType.Semantic,\n    SemanticSearch = new SemanticSearchOptions\n    {\n        SemanticConfigurationName = \"my-semantic-config\"\n    },\n    VectorSearch = new VectorSearchOptions\n    {\n        Queries = { vectorQuery }\n    }\n};\n\n\u002F\u002F Combines keyword search, vector search, and semantic ranking\nvar results = await searchClient.SearchAsync\u003CHotel>(\"luxury beachfront\", options);\n```\n\n## Field Attributes Reference\n\n| Attribute | Purpose |\n|-----------|---------|\n| `SimpleField` | Non-searchable field (filters, sorting, facets) |\n| `SearchableField` | Full-text searchable field |\n| `VectorSearchField` | Vector embedding field |\n| `IsKey = true` | Document key (required, one per index) |\n| `IsFilterable = true` | Enable $filter expressions |\n| `IsSortable = true` | Enable $orderby |\n| `IsFacetable = true` | Enable faceted navigation |\n| `IsHidden = true` | Exclude from results |\n| `AnalyzerName` | Specify text analyzer |\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var results = await searchClient.SearchAsync\u003CHotel>(\"query\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 404)\n{\n    Console.WriteLine(\"Index not found\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Search error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Best Practices\n\n1. **Use `DefaultAzureCredential`** over API keys for production\n2. **Use `FieldBuilder`** with model attributes for type-safe index definitions\n3. **Use `CreateOrUpdateIndexAsync`** for idempotent index creation\n4. **Batch document operations** for better throughput\n5. **Use `Select`** to return only needed fields\n6. **Configure semantic search** for natural language queries\n7. **Combine vector + keyword + semantic** for best relevance\n\n## Reference Files\n\n| File | Contents |\n|------|----------|\n| references\u002Fvector-search.md | Vector search, hybrid search, vectorizers |\n| references\u002Fsemantic-search.md | Semantic ranking, captions, answers |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":37,"source":31,"date_added":38,"description":7},"unknown","2026-02-27","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-search-documents-dotnet",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill azure-search-documents-dotnet",{"tool":53,"command":54},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill azure-search-documents-dotnet",{"tool":56,"command":57},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill azure-search-documents-dotnet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-search-documents-dotnet\u002FSKILL.md",true,[],[62,75,91,117,136,163],{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":72,"publishedAt":32},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[67],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[73,74],"Test Skill","test",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":32},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[82,83,84,85,86,87,88,31,89,90],"zustand store ts","zustand","store","with","types","middleware","patterns","create","typescript",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":100,"publishedAt":32},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000023","Skill与智能体开发",[101,102,103,104,105,23,106,107,108,109,110,111,112,113,31,114,115,116],"automation","zoom automation","zoom","first","Tools","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","management","tracking",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":124,"publishedAt":32},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[123],{"categoryNo":98,"categoryName":99,"taxonomyType":70,"taxonomyTypeDesc":71},[125,101,126,127,128,129,130,31,23,131,113,132,110,109,105,133,89,134,106,135],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":145,"publishedAt":32},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[142],{"categoryNo":143,"categoryName":144,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000009","前端开发",[146,147,148,149,150,90,151,152,153,154,155,156,85,157,158,159,160,31,161,162],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":32},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[169],{"categoryNo":98,"categoryName":99,"taxonomyType":70,"taxonomyTypeDesc":71},[171,172,173,174,175,176,177,178,31,179,180,181,182,183,184,185,186,187,188,106],"zeroize audit","audit","write","passwords","get","project","c++","activate","assembly","read","Bash","secrets","analysis","data","flow","verification","code","rust"]