Power Apps Search Series – Monitoring Index Status and Search Statistics

You have built intelligent, lightning-fast search experiences using the Dataverse Search APIs. But how do you ensure it keeps working? In this post, we will explore the Search Status and Statistics APIs your tools for maintaining healthy search experiences in Power Apps.


What Does Search Status Track?

Dataverse indexing is what powers full-text search. But if indexes fall behind, search becomes stale or broken.

The Statistics API helps you:

  • Monitor index freshness for each table
  • Detect tables that aren’t searchable
  • Check for indexing errors
  • Confirm when a recent schema or data change has been indexed

Sample Request

GET https://<env&gt;.crm.dynamics.com/api/search/v1.0/statistics

Authorization: Bearer eyJ0eXAi…


Sample Response Breakdown

{
  "value": [
    {
      "entityName": "account",
      "isEnabledForSearch": true,
      "lastUpdatedTime": "2024-06-21T16:10:00Z",
      "documentCount": 5432,
      "status": "Healthy"
    },
    {
      "entityName": "lead",
      "isEnabledForSearch": false,
      "status": "Disabled"
    }
  ]
}

Key Fields Explained

FieldDescription
entityNameLogical name of the table
isEnabledForSearchWhether full-text search is enabled
lastUpdatedTimeLast time indexing occurred
documentCountTotal indexed records
statusOverall health (Healthy, Disabled, Error)

Common Scenarios

1. Schema or Data Change

You added a new column or table and want to ensure it’s searchable.

  • Check if it’s indexed in the statistics API.
  • If not, make sure the field is searchable and wait for indexing to complete.

2. Missing Results

A user can’t find newly added data.

  • Use lastUpdatedTime to verify indexing has caught up.

3. Troubleshooting Search Bugs

Compare documentCount to actual table row count are there gaps?

4. Index Health Audit

Run the statistics API across environments (dev, test, prod) to catch misconfigurations.


Best Practices

  • Use search statistics in automated health checks
  • Log status and lastUpdatedTime for critical search tables
  • Trigger alerts if indexes are stale or disabled unexpectedly

Leave a comment