>> You're not going to want to miss
this episode of the AI Show where we
do a Azure Cognitive Search Overview,
high level what you can do without any code.
It's pretty amazing, make sure you tune in.
[MUSIC]
Hello, and welcome to this episode of the AI Show where
we're going to do an Azure Cognitive Search overview.
I got a special guest with me,
Luis. How are you doing my friend?
>> I'm doing great, Seth.
It's a pleasure to be with you.
>> So tell us who you are and what you do.
>> So I am a Program Manager in the Azure Cognitive Search team.
Well, as a Program Manager,
I worry about the design and
the definition of the product and
making sure that you know about it.
>> Fantastic. So why don't you give us
an overview of what Azure Cognitive Search is.
>> Thank you, Seth.
So azure Cognitive Search is
a platform as a service that allows you,
even if you're not the search expert,
to be able to create
wonderful search enabled applications for web,
for mobile, maybe for your line
of business or enterprise applications,
that's what it can do for you.
So as we can see on the slide,
Azure Search has all these capabilities
that you would expect in a search application today.
People have got used to
all these kind of capabilities when they go look for restaurants,
or maybe they want to look for a job,
or maybe they want to buy something.
Search boxes are in every application that you use every day,
and customers have come to
expect this capabilities in your application as well.
They want great search applications.
Great search applications are really
more than just trying to match a term
into character by character
into each of the documents that you have in a database.
They really expect a higher level of experience.
Imagine if you are creating, let's say,
a jobs site and you add your search query right there,
people expect to find results even if they make mistakes.
Let's say that they may misspell award or a term,
they still want to be able to find the content.
Also, as they are typing,
they will expect to see
type-ahead capabilities such as autocomplete,
such as synonyms, and
suggestions to be supported as part of your query.
Also, people want to portfolio facets, some filters,
and all kinds of other capabilities that allow them to drill
a little bit deeper into the type of data that they cared about.
So they can get really,
in this case, to the job that they care about.
But just like these, there could be
many, many other capabilities such as
geo-spatial queries or the support for highlighting snippets,
paging, and different ranking algorithms.
The beautiful thing about Azure Search
is that even if you're not a search expert,
you have all of these capabilities available to you.
>> So this is awesome.
But as I'm looking at this stuff,
and let me go back to your screen,
this all looks like stuff that can come out of a database.
What if you don't have data that's nice,
is there something we can do with that?
>> That's a great question,
Seth, and you're right.
In this case, this specific example is connecting, let's say,
to a SQL database or
maybe a Cosmos DB database that has all this information.
But in many cases,
your data is not structured.
It's really completely unstructured,
and one of the new capabilities of
Azure Cognitive Search is the ability
to be able to connect to different types of data sources,
whether they are structured or unstructured,
and be able to understand the content inside those data sources.
Let's say, for instance, that I have,
let's say, Blob Storage,
that's completely unstructured content.
I'm essentially just putting any type of document in there,
like PDFs, PowerPoint files,
Word documents, Excel spreadsheets,
all kinds of different types of file formats,
and I want to be able to find those documents.
So completely unstructured content,
I want to be able to find that still.
So the way that we can do this with
Azure Cognitive Search is through concept I would call Index Sets.
This Index Sets is essentially the pipeline that I'm
showing you on the slide right now,
where they have document cracking
skills to understand the different file format,
to extract the content out of those files,
the text, the images,
the metadata in those files,
and then be able to enrich this information
through what we call skills, essentially AI algorithms,
Machine Learning algorithms, and
we have about IoT or built-in algorithms,
and the ability for you to plug in your own algorithms as well.
This allows you to have structured content now,
what we see in the diagram must be enriched document,
and now, we can go and
index just us if we're word indexing structure content.
>> So this is awesome. I like everything you've showed me so far.
Can you show us what this actually looks like in practice?
>> Yes, I will. So let's actually go to this, my Azure portal.
I am here in my Azure account and
I'm going to show you how you get started.
Essentially, once you have your Azure subscription,
you just go and create a new resource.
We're going to search to search for search,
and I found the Azure cognitive Search right here.
I could go ahead and create that service.
I am not going to do that right now because I already have one.
So I'm going to one that I am already using.
So we're going to actually do an exercise where we're going to
import data from a data source and look at the files in there,
extract information from them,
and then index it without having to write any code.
But that doesn't mean that you
cannot do everything that we're going to loop pro automatically.
So you can see here I can click the "Import Data Flow",
and now, I can select
the type of data source that I want to connect to.
By the way, you can see that I have structured content such as,
such as Azure SQL databases
or maybe a SQL server on a Virtual Machine.
But in this case, we're going to
actually deal with unstructured content,
like I'm going to connect to
Azure Blob Storage and I can navigate to one
of my accounts that has a set of files.
So I have [inaudible] store.
I know in there there is a files container.
I'm just going to select it and I am going to give this a name.
I'm going to call it Demo Data Source,
and then as a next step,
I am going to add or define what are
the enrichment steps that I want to apply to my data,
because this is completely unstructured content.
So the system already detected
the schema of my information and now,
I can essentially attach
a cognitive services resource to my subscription.
One important thing here is that you need to create
a cognitive services resource in the same region as
your Azure cognitive research
so that we essentially powered
all these new Machine Learning algorithms.
So I am going to do that.
Then I'm going to add the exact enrichments that I care about.
A lot of my files in Blob Storage are, for instance,
I have PDF files there and they need to be cracked,
but once you open a PDF file,
sometimes they are nothing but a collection of images.
So I am going to click this checkbox to enable OCR,
and essentially take all the textual representation of them,
and put it into a merge content field.
Then I can apply different skills.
I'm going to select all of them just for fun,
and I'm going to even translate some of
them into English if they're not in English already.
But essentially, there are a bunch of
built-in skills that you can select in
here just by setting checkbox is going to do
quite a bit of work on each of these files.
I click "Next" to move forward.
Oh, sorry, it's complaining that I don't have
a unique name for my skill set,
so let me call it demoskillset.
>> So as you're doing this, you're basically pointing it to
a place where there's just blobs of data.
You're saying, anytime you get a new blob or thing,
run this stuff over it to see if it can get information out.
>> That is correct, and I
am telling or defining what are the steps that
should be applied to this information as it enters my data source.
So in the next step,
I am going to customize
the search index where the information ends,
and then I will describe what the index and properties are,
but I actually can tell it how often
to go look for changes and things like that.
>> Got it.
>> So we're going to go to
the next stage where I get to define the index properties.
Here, you can see that it automatically, for instance,
identified a bunch of metadata related to my files.
So for instance, I want to say, "Oh,
you know there is the metadata storage name
or the name of the file and storage.
I want that to be retrievable,"
maybe I also want that to be a searchable field,
so I could select the attributes of each of
the fields as they enter my new index.
So let's call this the demoindex,
and I could, for instance,
say that locations and people
organizations should be filterable and presentable.
So I can select each of those things.
Were even have interesting analyze service
for different languages.
You can see that because I translated all the text to English,
it automatically identify that as an English field,
and therefore, it selected the English analyzer.
We support both machine and Microsoft research produce analyzers.
This allow you to understand
really like the intricacies of language.
So for instance, if I were to search for a mice,
character-wise is a very different word from the term mouse,
but conceptually, they are similar.
One is just the plural of the other one.
So these analyzers solve some of those problems with the language.
So I'm going to click "Next" to create an indexset,
and let's give it a name demoindexer,
and this is what you are saying.
Maybe I just want to do that once
or maybe I want to do it on a schedule like hourly,
daily or define a custom schedule.
Let's just do it once for this demo, I'm going to submit it.
Under the code right now,
all these machineries getting setup.
Think of the machinery to crack open
all these different documents,
machinery to OCR them,
to translate them, and
all these orchestration is going to start happening soon,
and then we can see the results once the data is indexed.
So I can go and see each of my indexers and I can see,
for instance, we call these the demoindexer right now,
this one, which is currently in progress as it
is starting to index each of the documents.
>> I see. So the indexers job and as you refresh,
I go back to our faces so we can talk about it.
So as the indexers job is basically to pull those blobs out
and then run all of those intelligent things over that document.
You said something interesting, you said document
crack, it's cracked open.
What is that mean?
When I heard the term first it threw me for a loop.
>> It's something terminal term that we
use called document cracking.
It's just like cracking a nut.
You want the meat out of the nut.
You want eat the substance inside the shell of the nut.
So think of each of the documents that you have,
like PDF documents or Word documents,
even JSON documents or HTML.
Each of them have, let's say,
a textual representation inside of them.
So you want to extract the text out of them.
Some of them have images as well.
So maybe you want to extract, let's say,
the images inside a PowerPoint presentation, for instance.
Not only that, but you may want
to do further processing with
those pieces of information and that's what
the next stage or the skill set is for.
So for instance, you may want to
OCR or get the hand written or printed
text recognition out of
the images that you extracted out of the document.
>> I see. So basically,
all the indexer is basically like the hammer, the stamps out,
all the stuff out of the document, cracks it open,
runs a bunch of intelligent things,
and then stuffs it into the index.
What can you do with searching?
I'd love to see a sample like
once it's all cracked and put in the index,
what kind of search things can you do?
>> Yeah. So if we go back to the to the portal,
you will notice that our indexer
just finished cracking the documents.
Sometimes there are some warnings, for instance,
if some document didn't have a particular field,
but there were no errors in our indexers.
So we can actually go look at the demoindex.
So I'm going to through the indexers tab and click on "Demoindex".
You can see the fields
as where they find them earlier and so forth.
But I can also search here.
So for instance, let's say,
there is any document that mentioned Satya Nadella,
and this is some letter that he wrote today,
"It's already humbling day for me, blah, blah, blah,"
so I can see the results that came out of
these and for each of these documents here,
let me just scroll down,
I can see information
extracted from the documents such as the people,
the organizations, locations, and so
forth that were extracted automatically from this document.
I don't know, let's search for something else.
Just documents that I found in my hard drive.
So let's see something on bots perhaps.
So you can see here I had some text,
[FOREIGN] , in Spanish.
I gave some presentation in Spanish,
just to show the translation of that,
just so they'll be interesting to see.
You can see the translated text that was extracted as well.
Welcome to the future: Cognitive
Services and Buts by Louis Cabrera.
>> Sounds really cool.
>> Yeah. So that means that I can find the documents.
It doesn't matter if I use English or Spanish in this case,
it will still find the documents.
So that's how you query the information.
Of course, you can do it through APIs.
So this actually shows the request URL that I will use.
In this module, we're just showing you how
to do this from the portal.
But in future modules,
we'll show you how to do these
programmatically and how do we find the skill set on and so forth.
This is just a brief introduction into Azure Cognitive Search.
>> Well, fantastic. Thank you so much for this introduction.
As Luis as said, we
have other episodes that we're putting together to
see if we can get a whole set of these so you
can also dive into Azure Cognitive Search.
Thank you so much for spending some time with us, my friend.
>> It's my pleasure always. Thank you so much.
[MUSIC]