Power Platform offers powerful search experiences across apps built on Dataverse but unlocking its full potential requires understanding how search behaves under the hood. In this series, we will explore Dataverse’s search capabilities for professional developers and solution architects.
What Is Dataverse Search?
Dataverse search is a full-text, relevance-based search engine integrated into the platform. Unlike traditional queries or views, search enables:
- Ranked results based on keyword relevance
- Fuzzy matching (e.g., partial terms, misspellings)
- Search across multiple tables and columns
- Tokenization for multi-language support
This powers scenarios like:
- Fast record lookups across entities
- Enhanced global search experiences
- Predictive search suggestions and autocomplete
Dataverse Search vs. Traditional Queries
| Feature | Dataverse Search | FetchXML/QueryExpression |
|---|---|---|
| Fuzzy matching | ✅ Yes | ❌ No |
| Cross-entity search | ✅ Yes | ❌ No |
| Full-text ranking | ✅ Yes | ❌ No |
| Index required | ✅ Yes | ❌ No |
| Secure results by user | ✅ Yes | ✅ Yes |
Use Dataverse search when you need keyword-driven lookup and discovery. Use QueryExpression or FetchXML when you need structured filtering and joins.
Core Concepts
Relevance Search
Formerly known as “Relevance Search,” this is now the standard Dataverse search engine. It tokenizes text fields into indexed formats and returns ranked results.
Search-Enabled Tables and Fields
Not all tables and columns are searchable by default. Admins must configure:
- Which tables are enabled for search
- Which columns are indexed
This configuration is done via Power Platform Admin Center or programmatically via API.
Search Modes: Portal, API, SDK
| Channel | Capability |
|---|---|
| Model-driven app | Global search, lookup enhancements |
| Portal | Full-text keyword search for public users |
| Web API / SDK | Query with search parameter or headers |
We’ll dive into each mode in future parts of this series.
When to Use Dataverse Search
| Use Case | Search Ideal? |
|---|---|
| User types a keyword in app | ✅ Yes |
| Autocomplete on form field | ✅ Yes |
| Filter view by status = Active | ❌ Use FetchXML |
| Show records with createdOn > X | ❌ Use OData filter |
| Find leads with company LIKE ‘Conto’ | ✅ Yes |
Performance Considerations
- Dataverse search is eventually consistent recent changes might take a few seconds to reflect.
- Indexing happens asynchronously.
- Best used for read-heavy, discovery-oriented scenarios, not transactional logic.
What’s Next
In Part 2, we will explore the Search Query API, showing how to issue keyword queries using the Web API and SDK, filter search results, and control scoring and ranking.
This is where we shift gears from concept to code.
Stay tuned!
