Users generally expect to interact with data by searching, especially since this is the default method used on the internet. However, it would be difficult and time consuming if every application developer was also expected to develop a search engine for use on her/his application. Azure Search is an attempt to solve this problem. It is a managed service which is part of the Azure Cloud Platform and runs in the public cloud. It enables indexing and querying of data which has been uploaded to Microsoft servers. An application using Azure Search can run on Azure, on-site or on another cloud platform. Wherever the application is, Azure Search sits alongside and provides indexes which can be used to search the data. However, it’s only meant to be used by developers and not end users.
What's the Use Case?
Azure Search was designed with a number of scenarios in mind, including:
- e-commerce applications
- user generated content sites
- custom business applications
With e-commerce applications, users expect to be able to search the website to find what they want. However, the organisation also wants to be able to control the results of those searches, especially the order that those results are returned in. This control of the results is used to encourage consumers to buy particular products. Also, having its own search service means that a business can see what users are searching for and use this information to implement changes in the range of products offered.
When it comes to user-generated sites, people also expect to be able to search the website, but the organisation will also probably want to be able to control the results returned. For example, using this control over results to nudge consumers towards goods, products and services offered by the website’s sponsors.
Many business applications would benefit from a search option, especially those with a large or complex user interface and for those applications that are being introduced for the first time.
How Does Azure Search Work?
Infrastructure and availability are managed by Microsoft, so there’s no infrastructure management on your part. You can tailor the service to meet your business needs by scaling in two dimensions to handle more document storage or higher query loads, or both. Functionality is exposed through a REST API or .NET SDK. Because Azure Search is a fully managed service, you don’t have to deal with index corruption, service availability, scaling, or service updates.
The Azure portal (above) provides administration and content management support as well as tools, including Import Data Wizard to configure indexes and a Search explorer which is used to test queries and refine scoring profiles. You can also collect and analyse search traffic analytics. Other features include geo-search, linguistic analysis, data integration, cognitive search and user experience. User experience features are summarised below:
Finally, Azure Search is currently available in over 50 languages.
Using Azure Search
To start using Azure Search, you have to create an instance of the service. This includes specifying which Azure datacenter the instance should run in and what its capacity should be. Then, an application can start using the service via a RESTful interface.
First, you’ll have to create indexes. This is done using the Import Data Wizard (example above). An index is like a database table that holds your data and can accept search queries. Define the index schema to reflect the structure of the documents you wish to search. Next, load data into the indexes. You can retrieve data from external sources (a pull model). This process is supported by indexers which automate and streamline aspects of data ingestion. Indexers are available for Azure Cosmos DB, Azure SQL Database, Azure Blob Storage, and SQL Server hosted in an Azure VM. Alternatively, you can use a push model, pushing data from almost any
dataset using the JSON format. This model is provided through the SDK or REST APIs. The index will have to be updated periodically as the data on it changes, but this can be done on-demand or as a scheduled refresh.
When the indexes are populated, the application can begin searching using simple HTTP requests with REST API or the .NET SDK, and displaying the results. Use the built-in Search explorer query page to test query strings. Key query capabilities include filters, hit highlighting, fuzzy search and geo-search.
- 10th November, 2018: Version 1