Dynamics 365 Search Types Compared: IT Architect's Decision Matrix 2026
When IT architects ask about search in Dynamics 365, most blog posts hand them a feature matrix designed for end-users. That's not what you need when you're responsible for performance at 100,000+ records, column-level security compliance, cross-business-unit governance, and a licensing bill that can quietly balloon if Dataverse Search capacity isn't managed deliberately. This post is the one you should have found first.
Below, we dissect all four search mechanisms — Global Search, Dataverse Search, Quick Find, and Advanced Find — across the dimensions that actually matter to architects: indexing behavior, query limits, API surface, security exposure, governance levers, and cost implications. We close with a decision matrix you can take straight into your next architecture review.
Understanding the Four Search Mechanisms at a Technical Level
1. Dataverse Search (Formerly Relevance Search)
Dataverse Search is built on Azure Cognitive Search (now Azure AI Search) running as a managed service behind the Dataverse platform. When you enable it, Dataverse begins an asynchronous indexing pipeline that pushes selected table data into an external Azure Search index. This is the most important architectural fact about this feature: the index lives outside Dataverse, which has profound implications for security, latency, and licensing.
- Indexing behavior: Initial full sync can take hours on large datasets. Incremental sync runs near real-time (typically 15-second to 2-minute lag for new/updated records). Deleted records can take up to 20 minutes to be purged from the index.
- Query limits: Returns a maximum of 50 results per page, with a hard API cap of 100 results total per query via the Search endpoint. No server-side paging beyond this limit.
- API surface: Available via the
/api/search/v1.0/queryendpoint. Supports full-text scoring, facets, and highlighting — capabilities unavailable in other search types. - Performance at scale: At 100K+ records, Dataverse Search significantly outperforms FetchXML-based search due to pre-built inverted indexes. Sub-100ms query responses are achievable for common patterns.
- Security model: Respects Dataverse row-level security (user, team, business unit) via a post-query security trimming step. However, because the index is external, there is a documented eventual-consistency window where a record's permissions change may not immediately reflect in search results.
2. Quick Find (Single-Table and Multi-Table)
Quick Find is the legacy in-platform search that executes a FetchXML LIKE query directly against the Dataverse SQL layer. It has no external index — every search is a live database query against your Dataverse storage.
- Indexing behavior: No pre-built index. Uses SQL LIKE wildcards, which means leading wildcards (
%searchterm%) cause full table scans and do not benefit from SQL column indexes. - Query limits: Returns up to 10,000 records but is throttled to display 250 results by default. Quick Find View configuration limits which columns are searched.
- API surface: Expressed as FetchXML with the
quick-findattribute or via the OData$searchparameter, which internally converts to a Quick Find query when Dataverse Search is disabled. - Performance at scale: Degrades significantly beyond 50,000 records in searched tables. At 100K+ records, expect query times of 2–8 seconds depending on column cardinality and whether columns have SQL indexes applied.
- Security model: Executes within the Dataverse security layer — real-time, row-level security is enforced at the query level. No eventual-consistency risk, but no column-level filtering either.
3. Global Search (Header Bar Search)
Global Search is the UI layer that sits above either Dataverse Search or Quick Find, depending on your environment configuration. It is not an independent search engine — it is a unified interface that delegates to whichever underlying mechanism is active. Understanding this distinction prevents a common architectural mistake: teams believing they can configure Global Search independently of the underlying engine.
- When Dataverse Search is enabled: Global Search uses the Azure AI Search index.
- When Dataverse Search is disabled: Global Search falls back to Multi-Table Quick Find.
- Global Search scope is controlled by the Search Index configuration in Power Platform Admin Center — tables and columns not added to the index are invisible to Global Search.
- It does not expose an independent API. Programmatic access must target the underlying engine directly.
4. Advanced Find (Legacy and Modern)
Advanced Find is a query builder, not a search engine in the traditional sense. It generates FetchXML or OData queries against Dataverse storage with full support for multi-table joins, aggregate functions, and complex filter conditions. The modern version (accessible via the filter icon in model-driven apps) supports the same query depth.
- Indexing behavior: No index — direct query execution. Performance is query-shape dependent.
- Query limits: 50,000 record limit per query. Complex multi-join queries at this scale will consume significant database resources.
- API surface: FetchXML via the OData batch endpoint or the
RetrieveMultipleSDK message. Most extensible option for developers. - Performance at scale: Highly variable. Well-structured queries with indexed columns on filter fields perform acceptably. Poorly structured queries at 100K+ records can trigger Dataverse service protection limits and result in 429 throttling errors.
- Security model: Real-time row-level security enforced at query time. Supports field-level security (FLS) — columns protected by Field Security Profiles are automatically masked or excluded from results.
IT Architect Decision Matrix: When Each Method Creates Risk
Use the following framework in your architecture reviews. Each search type introduces specific technical debt vectors, security exposure windows, or latency risks that must be mitigated by design.
| Criteria | Dataverse Search | Quick Find | Advanced Find |
|---|---|---|---|
| 100K+ Records | ✅ Recommended | ⚠️ Latency risk | ⚠️ Shape-dependent |
| Real-time security | ⚠️ ~20 min lag | ✅ Enforced at query | ✅ Enforced at query |
| Field-Level Security | ❌ Not supported in index | ⚠️ Row-level only | ✅ FLS respected |
| API Extensibility | ✅ Search API + facets | ⚠️ FetchXML only | ✅ Full FetchXML/OData |
| Licensing cost | ⚠️ Capacity consumption | ✅ No added cost | ✅ No added cost |
| Cross-table relevance | ✅ Native ranking | ⚠️ Limited | ❌ Single-table joins |
Critical Security Alert: Field-Level Security and Dataverse Search
This is the most frequently overlooked architectural risk. When a column is protected by a Field Security Profile, Dataverse Search indexes that column's data regardless — the index does not evaluate FLS at index-build time. Security trimming at query time may prevent the record from being returned to unauthorized users, but if the FLS-protected field is a searchable column, its content enters the Azure AI Search index. For regulated data (PII, financial data, healthcare information), this is a compliance concern that must be addressed by explicitly excluding sensitive columns from the Dataverse Search index configuration.
Advanced Find remains the only search mechanism that natively evaluates Field Security Profiles both at filter time and in returned column values.
Configuration and Governance Guide
Standardizing Search Behavior Across Business Units
Enterprise deployments with multiple business units face configuration drift — individual customizers enabling search on tables without architectural review. Establish governance through the following controls:
- Centralize Dataverse Search index configuration in Power Platform Admin Center under Settings > Features > Dataverse Search. Restrict access to this setting via Environment Admin roles only.
- Document a Table Inclusion Policy that requires security review before any table or column is added to the Dataverse Search index. Tables containing PII, financial data, or data subject to regulatory controls should be evaluated against FLS limitations before inclusion.
- Standardize Quick Find Views per table using solutions — export Quick Find View definitions as part of your managed solution layers to prevent per-environment variation.
- Govern Advanced Find access using the Use Advanced Find privilege in security roles. In environments where end-users should not execute arbitrary FetchXML queries against large tables, consider restricting this privilege to power users and system administrators only.
Auditing Search Usage via Power Platform Admin Center
Search activity is surfaced through the Microsoft Purview audit logs integrated with Power Platform. To configure search auditing:
// Enable auditing at the environment level
// Power Platform Admin Center > Environments > [Your Env] > Settings > Auditing
// Enable: Start Auditing, Audit user access, Log access
// In Dataverse, enable auditing on specific tables:
// Table Properties > Auditing = Enabled
// Retrieve audit records via API:
GET [org-url]/api/data/v9.2/audits?$filter=action eq 64 // 64 = Search action code
&$select=createdon,userid,objecttypecode,changedata
Advanced Find queries are auditable as RetrieveMultiple operations. Dataverse Search queries are logged as Search API calls. For organizations requiring detailed search audit trails (e.g., SOC 2, ISO 27001 compliance), pipe audit logs to a Log Analytics Workspace via the Power Platform diagnostic settings connector.
Cost and Licensing Impact: Dataverse Search Capacity
This is where architects often get surprised post-deployment. Dataverse Search consumes Dataverse File Capacity — the indexed data stored in Azure AI Search counts against your organization's pooled Dataverse capacity allocation.
How to Estimate Your Dataverse Search Capacity Consumption
Microsoft's general guidance is that the search index consumes approximately 20–40% of the size of the indexed Dataverse data. For an environment with 50 GB of Dataverse storage, enabling Dataverse Search on all default tables could consume an additional 10–20 GB of capacity.
- Monitor actual consumption: Power Platform Admin Center > Resources > Capacity > Microsoft Dataverse (search index appears as a line item when significant).
- Optimization strategy 1: Exclude large attachment/note tables from Dataverse Search — they consume disproportionate index capacity with low search utility.
- Optimization strategy 2: Limit indexed columns to those actually used in search scenarios. Each additional column multiplies index size.
- Optimization strategy 3: For environments with historical or archive data (records older than 2 years), evaluate whether a separate Dataverse environment with Dataverse Search disabled is more cost-effective for archival access via Advanced Find.
- Optimization strategy 4: Review the Dataverse Search index table list quarterly. Tables added during development or testing phases are frequently left in the index after go-live.
Licensing Tiers and Search Feature Availability
All four search mechanisms are available across Dynamics 365 Sales, Customer Service, and Field Service licenses. However, Power Apps per-app licenses can access Dataverse Search via model-driven apps, while standalone Power Apps canvas apps must call the Search API directly — which counts against API call limits (20,000 calls/day per user on standard licenses, 100,000/day on premium). Plan accordingly if building high-frequency search experiences on canvas apps.
The Architect's Recommendation Framework
Based on the technical analysis above, apply the following decision logic in your next architecture review:
- Use Dataverse Search as the primary search mechanism for all environments where (a) tables exceed 50K records, (b) cross-entity relevance ranking is required, and (c) the data does not include FLS-protected sensitive fields used as search columns.
- Use Quick Find only for small-to-medium datasets (<50K records) where real-time security accuracy is non-negotiable and licensing capacity is constrained.
- Use Advanced Find / FetchXML for all programmatic data retrieval scenarios, complex filter requirements, and any use case involving FLS-protected columns.
- Treat Global Search as a UX concern, not an architectural one — configure the underlying engine, not the header bar interface.
- Never enable Dataverse Search on tables containing FLS-protected sensitive fields that are also search-enabled columns without a documented compliance review and sign-off.
Conclusion
Search in Dynamics 365 is not a single feature — it is a layered architecture with significant implications for performance, security, governance, and cost at enterprise scale. The organizations that get this right treat search configuration as a first-class architectural decision, not a post-go-live tuning exercise. By applying the technical criteria in this decision matrix — indexing mechanics, FLS compatibility, API surface, and capacity cost — you can design a search architecture that performs, complies, and scales alongside your business.
At CRMONCE, we work with IT teams across India and globally to architect Dynamics 365 and Power Platform environments that are built for enterprise-grade scale from day one. If you're evaluating your current search configuration or planning a new deployment, contact our team for a complimentary architecture review.
Source Reference: This post references and expands on search architecture guidance from the CRM Software Blog, reframed with technical depth for IT architects and enterprise decision-makers.