Search facilities are becoming ever more important in application development. Azure have provided a powerful, scalable solution to allow developers to add a feature-rich full-text search to a custom application.
Azure Cognitive Search (formerly Azure Search) is an Azure cloud search service. It sits between data stores and your application. The application can use Azure Cognitive Search to search a number of storage resources through either the Azure Cloud search services provided REST APIs, or SDKs like the Azure SDK for .NET. Because of the nature of its cloud hosting and pricing structure, Azure Cognitive Search is suitable for any type and size of company; small businesses, mid-size businesses, Enterprise, Freelance, Non-profit, and Government.
The main components of Azure Cognitive Search are Indexing and Querying. Searchable text is stored in a document store, an index. Through a process of indexing, Azure Cognitive Search builds these indexes using indexers which can be either a manual or automated process. E.g., an automated indexer can connect to your blob storage, search for usable text within that storage resource and add that text to an index. Azure Cognitive Search has built-in AI enrichment tools to enhance this search facility further by optionally including image optical character recognition (OCR), image analysis, text translation, entity recognition, and full-text search.
Once an index has been populated, you can query that index using either the rest of the API’s or one of the available SDKs. The provided search results allow for an advanced application search facility. Your application can provide a full-text search using a basic search syntax, wildcards, fuzzy search, or regular expressions. The search results response allows for an advanced feature-rich search with paging and suggested results from partial terms and autocomplete.
There are several options for the configuration of Azure Cognitive Search, it can be done either through the Azure portal, Azure PowerShell, Azure CLI, the Management REST API, or an Azure Resource Manager service (ARM) template. The process of setting up the service and then the individual indexers to search the storage resources is straightforward using the portal tools.
The pricing model for Azure Cognitive Search is based on search units. A search unit is a scalable replica or partition, replicas are copies of the search engine and partitions are storage units within the search engine. When creating a search service resource in Azure you can decide on a tier which will provide more expensive hardware and features as the cost increases, the Search Units then provide the scalability within that tier.
For a custom application that needs to provide a feature-rich search facility, searching several different types of storage resources, Azure Cognitive Search can really enhance that requirement within your application. It’s suitable for small medium and large data sets with scalability and suitable cost effectiveness at each level.