Skip to content

C# Code Samples - Analyzers & Scoring

This directory contains C# implementations for Azure AI Search analyzer and scoring profile examples using the Azure.Search.Documents SDK.

Prerequisites

dotnet add package Azure.Search.Documents
dotnet add package Microsoft.Extensions.Configuration
dotnet add package Microsoft.Extensions.Configuration.Json

Configuration

Create an appsettings.json file with your Azure AI Search service details:

{
  "SearchServiceName": "your-search-service",
  "SearchAdminKey": "your-admin-key",
  "SearchQueryKey": "your-query-key",
  "SearchIndexName": "analyzer-test-index"
}

Sample Files

Core Samples

  • 01_BuiltinAnalyzers.cs - Compare built-in analyzers
  • 02_CustomAnalyzers.cs - Create and test custom analyzers
  • 05_BasicScoring.cs - Field weights and basic scoring
  • Config.cs - Configuration management
  • Utils.cs - Common utility functions

Running Samples

Individual Sample

dotnet run 01_BuiltinAnalyzers.cs

Build and Run

dotnet build
dotnet run --project AnalyzersScoringSamples

Features Demonstrated

  • Azure.Search.Documents SDK usage
  • Async/await patterns with proper disposal
  • Comprehensive error handling and logging
  • Performance measurement and monitoring
  • Index management and document operations
  • Analyzer testing and validation
  • Scoring profile implementation

Project Structure

csharp/
├── README.md
├── Config.cs                    # Configuration management
├── Utils.cs                     # Utility classes and helpers
├── 01_BuiltinAnalyzers.cs      # Built-in analyzer comparison
├── 02_CustomAnalyzers.cs       # Custom analyzer implementation
├── 05_BasicScoring.cs          # Scoring profile examples
├── appsettings.json            # Configuration file
└── AnalyzersScoringSamples.csproj # Project file

Best Practices Demonstrated

  • Proper resource disposal with using statements
  • Async programming patterns
  • Configuration management with IConfiguration
  • Structured logging with ILogger
  • Exception handling and error recovery
  • Performance monitoring and metrics collection