"The Microsoft Search API provides one unified search endpoint that you can
use to query data in the Microsoft cloud - messages and events in Outlook
mailboxes, and files on OneDrive and SharePoint - that Microsoft Search
already indexes."
And it's also currently planned that Microsoft Teams search will also be
transitioned to use Microsoft Search in the future: https://twitter.com/williambaer/status/1273644094904872960
Considering everything, it looks like Microsoft Search will play an
important role in Microsoft 365 solutions going forward. Given this, I decided to check out the Graph API .NET SDK late last year to
try and search SharePoint files. But quickly stumbled on a roadblock which
did not allow the API to work with the SDK: https://github.com/microsoftgraph/msgraph-beta-sdk-dotnet/issues/43
Fortunately, the issue was fixed recently and we are able to use the .NET
Graph SDK for testing.
The code:
Let's see how can we search SharePoint Online content using the new Microsoft Search API:
For this code to work, you will need the Microsoft.Graph.Beta nuget
package:
We are going to use the KQL sytax with the Microsoft Graph Search API
to query SharePoint Modern pages in a tenant. Once the query completes, we will display the page name and page url in the console:
Considerations:
Although it works great, there are a few considerations currently:
- The API only works with delegated access for now i.e. with a user context. Application permissions are not supported.
- When searching SharePoint Online content, we are not able to specify fields to return in the result. Only a default set of fields can be returned.
- There is no custom sorting available as of now when it comes to SharePoint content. The content is sorted by default by relevance.
Hope you found this post useful and helps you get started with the Microsoft Search API. To read up more on the Microsoft Search API in Graph, have a look here:
2 comments:
How can I use AND OR operation to search for multiple fields such as DateTime and subject?
Hi, you can use normal KQL syntax with Microsoft Search API as well: https://docs.microsoft.com/en-us/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference
Post a Comment