Azure Search Service is a fully managed cloud service that allows developers to build rich search applications using a .NET SDK or REST APIs.
It includes full-text search scoped over your content, plus advanced search behaviors similar to those found in commercial web search engines, such as type-ahead query suggestions based on a partial term input, hit-highlighting, and faceted navigation.
Natural language support is built-in, using the linguistic rules that are appropriate to the specified language.
Azure Search is a PaaS service that delegates server and infrastructure management to Microsoft, leaving you with a ready-to-use service that you populate with search data, and then access from your application.
Azure Search stores your data in an index that can be searched through full text queries. The schema of these indexes can either be created in the Azure Portal, or programmatically using the client library or REST APIs. Once the schema is defined, you can then upload your data to the Azure Search service where it is subsequently indexed.
You can use either push or pull models to upload data to the index.
The pull model is provided through indexers that can be configured for on demand or scheduled updates (Indexer operations (Azure Search Service REST API)), allowing you to easily ingest data and data changes from an Azure DocumentDB, Azure SQL Database, or SQL Server hosted in an Azure VM.
The push model is provided through the SDK or REST APIs used for sending updated documents to an index. You can push data from virtually any dataset, as long as it’s in JSON format.
Some developers will choose an indexer for the convenience it provides.
For other developers, the push model is worth a little extra work. Reasons for choosing a push model are twofold. First, you avoid the extra load that crawler-style mechanisms place on your data servers. Secondly, you avoid the inherent latency that comes with scheduled indexing. You’ll want search to reflect up-to-the-second status on available inventory. A push model can give you that degree of precision.
Indexes and documents
You can have multiple indexes for limits based on pricing tiers). Note that there is currently no support for joining indexes. A search request can specify one index.
Documents contain fields and associated attributes. Fields include searchable text, values used predominantly (or even exclusively) in filters and scoring profiles, and very likely – URLs or pointers to content, such as images, in other data stores. Many search applications use multiple forms of storage. Images or videos can be stored more cheaply in other storage media, such as Azure Blob storage.
Indexers can be used to schedule index updates from changed data in Azure SQL Database, SQL Server on Azure VMs, or Azure DocumentDB.
Queries can be formulated using OData syntax for Boolean filters and a simple query syntax for full-text search.
You can look up specific documents based on their ID to quickly retrieve specific items. This is useful when a user clicks on a specific search result and you want to do a look up specific details about that document.
Search application features
Full-text search (on by default for text fields) is enabled for any field having the searchable attribute. Full-text search is based on prefix matching, which means that matches are based on the first part of a search term, and not in the middle or end of word.
Scoring profiles are used to build ranking models that optimize search based on business objectives. For example, you might want newer products or discounted products to appear higher in the search results. You can also build scoring profiles using tags for personalized scoring based on customer search preferences you've tracked and stored separately.
Language support is built-in for fifty different languages, using multiple options of natural language processing stacks, including the well-known Lucene analyzers and Microsoft's own analyzers that power Microsoft Office and Bing (preview only).
Faceted navigation refers to a categorization tree used for self-directed search, often based on brands, models, sizes, or whatever categories make sense for your data. Faceted navigation is implemented through attributes in your index, combined with a facet field that is provided in a query.
Suggestions for type-ahead or autocomplete queries is supported through attributes in your index. Azure Search supports both fuzzy matching and infix matching (matching on any part of the field content). You can do both; they are not mutually exclusive.
Filters can be used to implement faceted navigation, used in query construction, or used globally to constrain search operations to filter criteria you establish in code. Filters are enabled for specific fields via your index schema, and through the $Filter search parameter.
Sort is also enabled for specific fields via the index schema and then implemented as a search parameter via the $orderBy parameter.
Count of the search hits returned for a query, and the ability to throttle how many hits are returned at a time, are implemented through $top and $skip.
Highlighted hits are specified via the highlight query parameter, and allow you to display to a user a snippet of text highlighting key words found from the search terms entered by the user.
https://msdn.microsoft.com/en-us/library/azure/dn798927.aspx?f=255&MSPPError=-2147217396
Limitations
https://azure.microsoft.com/en-in/documentation/articles/search-limits-quotas-capacity/
Azure Search does supports contains and endsWith functions that mean we cannot search like *lux* or *lux.
Reporting and analysis
Resource usage is displayed on the service dashboard so that you can quickly get an idea of how your storage is being used.
Storage consumption, document count, and index count are available in the portal. You can also use the API.
There is no built-in mechanism for measuring query throughput or other service operations. In addition, there is currently no support for logging or analysis of search results (for example, retrieving a list of search terms that yielded no results, or reporting on the origin of search requests).
References
https://azure.microsoft.com/en-in/services/search/
https://azure.microsoft.com/en-in/documentation/articles/search-what-is-azure-search/
https://msdn.microsoft.com/library/azure/dn798935.aspx
https://msdn.microsoft.com/en-us/library/azure/dn798927.aspx?f=255&MSPPError=-2147217396
https://azure.microsoft.com/en-in/documentation/articles/search-limits-quotas-capacity/