Azure Cognitive Search

Microsoft Azure Cognitive Search, formerly known as Azure Search, is a component of the Microsoft Azure Cloud Platform providing indexing and querying capabilities for data uploaded to Microsoft servers. The Search as a service framework is intended to provide developers with complex search capabilities for mobile and web development while hiding infrastructure requirements and search algorithm complexities. Azure Search is a recent addition to Microsoft's Infrastructure as a Service (IaaS) approach.

History
In 2008 Microsoft released the Azure platform with a cloud based component code-named project Red Dog. The years leading up to 2013 were spent developing the Azure framework within the scope of a Microsoft environment. In 2013 Microsoft issued a general announcement announcing IaaS and detailing new features of Azure, including the new Azure Search.

Azure Search as a Service
Azure Search is an API based service that provides REST APIs via protocols such as OData or integrated libraries such as the .NET SDK. Primarily the service consists of the creation of data indexes and search requests within the index.

Data to be searched is uploaded into logical containers called indexes. An interface schema is created as part of the logical index container that provides the API hooks used to return search results with additional features integrated into Azure Search. Azure Search provides two different indexing engines: Microsofts own proprietary natural language processing technology or Apache Lucene analyzers. The Microsoft search engine is ostensibly built on Elasticsearch.

IaaS and PaaS
Azure offers both the platform via web interface (Platform as a Service) and the hardware via virtual servers allocated to Azure accounts for data storage and processing (Infrastructure as a Service). Azure Search resides within the Microsoft IaaS and PaaS suite as a service, I.E. Search as a Service (SaaS).

Queries
A search string can be specified as one of the query parameters to retrieve matching documents. Azure Search supports search strings using simple query syntax. Supported features include logical operators, the suffix operator, and query with Lucene query syntax. (currently in preview) As an example, white+house will search for documents containing both "white" and "house". Lucene query syntax provides features similar to simple query syntax for logical operators and wildcard searches while also supporting more complicated functions such as proximity search and fuzzy search,

AI Enrichments
Pre-built AI powered enrichments (known as cognitive skills) can be used to extract text from images, blobs, and other unstructured data sources. Examples of built-in cognitive skills are: extraction of text from images, automatic language translation and extraction of named entities from text. Developers can also create custom skills and apply them to the AI enrichment pipeline. The main purpose of AI enrichments is to extract structure out of unstructured information in order to make it searchable.

Language Support
Azure Search currently supports 56 different languages. Each supported language extension is equipped with a text analyzer to account for differing characteristics pertaining to the specific language. Both analyzers backed by Lucene and analyzers backed by Microsofts natural language processing technology are supported. These analyzers provide features such as text segmentation, word normalization, and entity recognition when processing text documents. The list of supported languages can be found in the Microsoft Azure Documentation.

Search Suggestions
Type-ahead queries or auto-complete search bars provide potential search terms while a user types. The suggestions capability is provided as an optional component specified within an index called a suggester construction. The suggester construction provides information about the list of fields to be considered as content sources for suggestions.

Hit Highlighting
The snippet of text in the search results matching the search query can be highlighted by specifying a set of field names as one of the query parameters for hit highlighting.

Faceted Navigation
Faceted Navigation allows users to specify a field to facet in the query parameters passed to Azure Search. Users can drill down or filter search results by using criteria such as categories, prices and brand. There are several parameters providing customization of faceting capabilities such as sort and intervals. For example, if you specify facet=rating, sort:-value The returning results will contains all groups with a rating in descending order by value. Faceted navigation is common in most e-commerce sites such as Amazon.

Geo-spatial Support
Azure Search supports geo-spatial information. This allows users to explore data based on a specified geographic location. An overview of Geo-spatial support can be found in Azure Search and Geo-spatial Data.