Binnen het Azure PaaS-platform is Azure Search een van de onderdelen die ik graag bij mijn oplossingen betrek. Azure Search biedt namelijk een zeer krachtige zoekservice die je gemakkelijk kunt inrichten met standaardfunctionaliteiten, zoals full-tekst zoeken en meertaligheid. Daarnaast kun je eenvoudig functionaliteiten implementeren. Bijvoorbeeld suggesties en downdrillen (faceted search). Wat mij bovendien erg aanspreekt, is dat Azure Search eenvoudig en op verschillende manieren opgezet kan worden.
Het creëren van een Index
Ik heb gemerkt dat ik vaak vanuit C# classes mijn indexen aanmaak en gebruik. Omdat ik in veel gevallen dezelfde patronen gebruik, heb ik een library geschreven die mijn werk makkelijker maakt. Het hart van de library is IndexFactory class. Deze class implementeert de functie CreateIndex, die op basis van een C# class een Azure Search Index-definitie aanmaakt.
public interface IIndexFactory
{
Index CreateIndexFrom(string name);
Index CreateIndexFrom(Type type, string name);
}
De opgegeven C# class wordt door de IndexFactory met reflection doorzocht op SearchIndexAttribute-attributen. Deze kunnen op een model worden gebruikt om aan te geven hoe een bepaalde index eruitziet.
public class LandMark
{
[SearchIndex(IsKey = true, IsRetrievable = true)]
public string Id { get; set; }
[SearchIndex(IsRetrievable = true, IsSearchable = true)]
public string Name { get; set; }
[SearchIndex(IsRetrievable = true, IsFacetable = true)]
public string Continent { get; set; }
[SearchIndex(IsRetrievable = true, IsSearchable = true)]
public string Country { get; set; }
[SearchIndex(IsRetrievable = true)]
public string ImageUrl { get; set; }
[SearchIndex(IsRetrievable = true, IsSearchable = true)]
public GeographyPoint Location { get; set; }
}
LandMark class
In het bovenstaande voorbeeld worden de properties in de LandMark class gedecoreerd met het SearchIndex-attribuut. Zo wordt bijvoorbeeld de Id property aangemerkt als Key van de index. De Id property kan ook worden opgehaald. Bovendien is het mogelijk om op de Name property te zoeken en voor het Continent facetten op te vragen. Door de LandMark class aan te bieden aan de CreateIndexFrom wordt er een Index-definitie aangemaakt die de LandMark class representeert. Met deze definitie kan in de Azure Search SDK de daadwerkelijke Index worden gemaakt.
Status en toekomst
Op dit moment staat de library in GitHub. Daar vind je ook een sampleprogramma, waarin de library wordt gebruikt. In de komende tijd wordt het sampleprogramma verder ontwikkeld en komt de library ook via NuGet beschikbaar. Maar voor nu ben ik heel benieuwd naar jouw mening. Dus laat gerust weten hoe jij erover denkt!
Resources
Wil je meer weten over Azure Search en hoe je dit onderdeel in een C#-omgeving kunt gebruiken? Ga dan eens naar de volgende pagina’s:
Azure Search Documentation-site
How to use Azure Search from a .NET Application
2 april 2025 Schrijf in voor al weer de twaalfde editie van ons jaarlijkse congres met wederom een ijzersterke sprekers line-up. Op deze editie behandelen wij belangrijke thema’s als Moderne (Native-Cloud) Data Architecturen, Datawarehouse Desi...
3 april 2025 (halve dag)Praktische workshop met Alec Sharp [Halve dag] Deze workshop door Alec Sharp introduceert conceptmodellering vanuit een non-technisch perspectief. Alec geeft tips en richtlijnen voor de analist, en verkent datamodellering op c...
7 t/m 9 april 2025Praktische workshop met internationaal gerenommeerde spreker Alec Sharp over het modelleren met Entity-Relationship vanuit business perspectief. De workshop wordt ondersteund met praktijkvoorbeelden en duidelijke, herbruikbare richt...
10, 11 en 14 april 2025Praktische driedaagse workshop met internationaal gerenommeerde spreker Alec Sharp over herkennen, beschrijven en ontwerpen van business processen. De workshop wordt ondersteund met praktijkvoorbeelden en duidelijke, herbruikba...
20 en 21 mei 2025 Deze workshop behandelt de implementatie van Knowledge Graphs en Large Language Models binnen organisaties en biedt een uitgebreid raamwerk waarin geavanceerde technieken worden gecombineerd met praktijkcases en oefeningen. Het vo...
22 mei 2025 Workshop met BPM-specialist Christian Gijsels over AI-Gedreven Business Analyse met ChatGPT. Kunstmatige Intelligentie, ongetwijfeld een van de meest baanbrekende technologieën tot nu toe, opent nieuwe deuren voor analisten met innovatie...
2 t/m 4 juni 2025 De DAMA DMBoK2 beschrijft 11 disciplines van Data Management, waarbij Data Governance centraal staat. De Certified Data Management Professional (CDMP) certificatie biedt een traject voor het inleidende niveau (Associate) tot en me...
Alleen als In-house beschikbaarWorkshop met BPM-specialist Christian Gijsels over business analyse, modelleren en simuleren met de nieuwste release van Sparx Systems' Enterprise Architect, versie 16.Intensieve cursus waarin de belangrijkste basisfunc...
Deel dit bericht