Azure Search is a managed service running in the public cloud. A development team can create a new instance of the service, then start using it right away. The team doesn’t need to install or manage its own search technology. Azure Search 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.
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.
How to use Azure search
We will create a demo application
in which will use azure search and explain how it works. In demo application we
are using some of azure services
1.
Blob Storage
2.
Azure Search
3.
Azure Maps
4.
Web App
Demo application architecture will look like as below
Blob Storage
We will use already created
storage account djblogsstorageaccount
to save JSON file in blob. If you want to read more about storage account, you
can read my previous blog What
is Azure Storage Account?
Need follow steps to create container
inside already created storage account.
1.
Go to azure portal https://portal.azure.com
2.
Once we login
in portal select the djblogsstorageaccount
storage account.
3. Add new hotelsjson container inside blob containers to save JSON files inside it.
4. Once hotelsjson container is added. Now we will upload JSON file which have all the hotel information.
5.
Now hotels
data uploaded in blob container and azure search will use it.
Azure Search
If you want to use azure search
service then first you need to create a new instance service, then start using
it right away.
How it works
When you create a Cognitive Search service, you get a search engine that performs indexing and query execution, persistent storage of indexes that you create and manage, and a query language for composing simple to complex queries. Optionally, a search service integrates with other Azure services in the form of indexers that automate data ingestion/retrieval from Azure data sources, and skillsets that incorporate consumable AI from Cognitive Services, such as image and text analysis, or custom AI that you create in Azure Machine Learning or wrap inside Azure Functions.
Architecturally, a search service sits in between the
external data stores that contain your un-indexed data, and a client app that
sends query requests to a search index and handles the response. An index
schema determines the structure of searchable content.
The two primary workloads of a search service are indexing
and querying.
1. Indexing brings text into to your search service and makes it searchable. Internally, inbound text is processed into tokens and stored in inverted indexes for fast scans. During indexing, you have the option of adding cognitive skills, either predefined ones from Microsoft or custom skills that you create. The subsequent analysis and transformations can result in new information and structures that did not previously exist, providing high utility for many search and knowledge mining scenarios.
2. Once an index is populated with searchable data, your client app sends query requests to a search service and handles responses. All query execution is over a search index that you create, own, and store in your service. In your client app, the search experience is defined using APIs from Azure Cognitive Search, and can include relevance tuning, autocomplete, synonym matching, fuzzy matching, pattern matching, filter, and sort.
How to create Azure search service
Need follow steps to create azure
search service.
1.
Go to azure portal https://portal.azure.com
2. Once we login in portal then need to create Azure Cognitive Search.
3. Once we click on create button it will open form like below
4. As above I am choosing free pricing tier for demo. Once we fill all the information click on Review + Create button it will create azure search for us. It will look like below
5. Azure search service created. We can consume it with help
of service URL and Keys as below.
URL: https://djblogssearch.search.windows.net
6. Once service instance is created then need to import data into service instance. Azure provide multiple data provider to import data into azure search as below. We will use azure storage where our hotels JSON stored.
7. Once we click on Azure Blob Storage. It will ask to select storage account as below
8. To
get started, an application must first create one or more indexes into data.
Each index contains information that a search request can access, and it’s the
fundamental data store of Azure Search. Once an index exists, the application
can begin issuing searches against it and displaying the results. Finally, the
application must periodically update the index as the data it searches on
changes.
Getting
an index ready to use requires two things:
a.
Defining the index’s schema,
including specifying the fields it contains and setting various attributes for
each field.
b. Populating the index by supplying its initial set of data. Most often, this data will come from the application’s operational database, but this isn’t required. An index can also hold data from other sources.
Field
attributes determine how a field is used, such as whether it is used in full
text search, faceted navigation, sort operations, and so forth.String fields
are often marked as "Searchable" and "Retrievable". Fields
used to narrow search results include "Sortable", "Filterable",
and "Facetable".
Attribute |
Description |
Searchable |
|
Filterable |
Referenced in $filter queries. Filterable fields of type
Edm.String or Collection(Edm.String) do not undergo word-breaking, so
comparisons are for exact matches only. For example, if you set such a field
f to "sunny day", $filter=f eq 'sunny' will find no matches, but
$filter=f eq 'sunny day' will. |
Sortable |
By default the system sorts results by score, but you can
configure sort based on fields in the documents. Fields of type Collection(Edm.String)
cannot be "sortable". |
Facetable |
|
Key |
Unique identifier for documents within the index. Exactly one
field must be chosen as the key field and it must be of type Edm.String. |
Retrievable |
Determines whether the field can be returned in a search result.
This is useful when you want to use a field (such as profit margin) as a
filter, sorting, or scoring mechanism, but do not want the field to be
visible to the end user. This attribute must be true for key fields. |
It
will look like as below
9. Now indexes created in data. We can test within azure portal with help of Search explorer. It looks like as below.
10. Once an index has been created and populated with data, users can begin issuing searches. Below figure shows how the search process looks in our own web app.
Azure Maps
Azure Maps is a collection of
geospatial services and SDKs that use fresh mapping data to provide geographic
context to web and mobile applications.
Azure Maps provides
1.
REST APIs to render vector and raster maps in
multiple styles and satellite imagery.
2.
Creator services to create and render maps based
on private indoor map data.
3.
Search services to locate addresses, places, and
points of interest around the world.
4.
Various routing options; such as point-to-point,
multipoint, multipoint optimization, isochrone, electric vehicle, commercial
vehicle, traffic influenced, and matrix routing.
5.
Traffic flow view and incidents view, for
applications that require real-time traffic information.
In this demo we will use Azure map to show the location
of hotel into map. To use maps than need to create Azure Map service with help
of azure portal.
Need follow steps to create Azure
Maps.
1.
Go to azure portal https://portal.azure.com
2. Create Azure Maps
3. Click on create button it will open form that need to be fill
4. Once we click on create button. it creates azure map service for us. We consume this service with help of client key and other keys. To show hotel in map, I have used primary key as below screen.
Web App
Now our azure search service and
azure map ready to consume. We need to create WebApp to consume azure search
service. If you want to learn more about WebApp. Please read my previous post Create
Web App
Need follow steps to create Web
App.
5.
Go to azure portal https://portal.azure.com
6. Created djblogshotels webapp
7. Download web app publisher and publish .net core MVC application from visual studio
8.
You can download DJBlogs.Azure.Search from my GitHub repository.
URL: https://github.com/deepakjoshiinfo/DJBlogs.Azure.SearchMap
9.
Once code is published it will look like as
below
URL: https://djblogshotels.azurewebsites.net/
Hope it will help you to understand azure search and map service.
Keep sharing keep learning. Cheers
No comments:
Post a Comment