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).
Features 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. ==References==