Microsoft Search - Query Configuration

Technical Prerequisites

If you want to query Microsoft Search then this uses the same Entra Id application as the authentication provider which secures the search interface, as well as the admin interface. It was configured at Authentication Provider .

You need to modify this Entra Id application registration as follows:

  1. Open the application registration in Entra Id

  2. Open API permissions

  3. Click on Add a permission

  4. Choose Delegated Permissions

  5. Add the permissions
    ExternalItem.Read.All (for Graph connections)
    Files.Read.All (for OneDrive/SharePoint Search)
    People.Read (for People Search)
    Sites.Read.All (for OneDrive/SharePoint Search)
    openid (for authentication reasons)

  6. Grant tenant-wide admin consent

Query Configuration

You can access this dialog via Search UX and by adding an Microsoft Search instance as search engine.

  1. Connections to search through: please add a list of connection ids which you would like to search at query time. Please note that these are external connections and if you like to use these Graph connections, you need to add “externalItem” in the next configuration fields.

  2. Entities to fetch: this is a list of search entities to fetch from Microsoft Search. Possible values are listItem, externalItem and person. The first two can be used for interleaved results. Adding e.g. person with listItem or externalItem, will not work. Please refer to the documentation https://learn.microsoft.com/en-us/graph/search-concept-interleaving.

    The search interface does not yet support other entities for rendering. Also please note that other entities might need other Graph API permissions.

  3. Fields to fetch: This is a list of fields which Microsoft Search should return for a query. If you add further index fields, then you must add these explicitly for retrieval.

    Please note that Microsoft Search has, when it comes to SharePoint Online results, a very heterogeneous search schema. The RheinInsights Retrieval Suite harmonizes this by adding the default fields directly in this list. Moreover, the query pipelines for Microsoft Search (see Configuration Template Wizard ) include field name and value mappings which are needed for a consistent search experience. We believe that both saves a lot of time when using Microsoft Search.

  4. Response timeout: determines the timeout when waiting for Elasticsearch responses in milliseconds.

  5. Connection timeout: determines the timeout when waiting for connections to Elasticsearch in milliseconds.

  6. Filters (aka refiners aka aggregations)

    1. Within this dialog you can add and remove filters. This does not mean that filters will be shown in the search interface right away but it is needed to tell the search engine to return calculated filters.

    2. Filter type: defines if this is a term filter (such as for file types), range filters (such as for prices) or date filters.

    3. Fieldname: is the name of the field which the filter should be computed for.

    4. Number of values to show: for term filters this defines how many values should be returned.

    5. Sorting: defines if the filter buckets should be sorted based on the document frequency (number of results) or lexicographically

    6. Sort direction: if sorting should be descending or ascending (based on the ordering type in e.)

When finished with setting these fields, click on validate and save. If you observe any issues, then the validator will let you know or you can find more insights in the log files.