---
id: video/lH2Z4xfdhmY
type: video
title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
summary: "Modern search in Business Central (2024 release wave 2) for developers: searches for all words instead of substrings, is enabled per field with the optimized for text search property, and applies to page search, lookup and company-wide search. Covers the new double and filter operator in SetFilter and full-text index generation."
tier: official
language: en
tags:
  - modern search
  - full-text search
  - optimized for text search property
  - page search
  - lookup
  - company-wide search
  - performance
  - al development
  - set filter method
  - double and operator
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-07T23:04:18.182Z"
  flags: []
generated:
  at: "2026-10-07T23:04:18.225Z"
  pipeline: 0.2.0
  prompts:
    extract-video: 1
    summarize-video: 2
  input_hash: d3adc36a2de81e22af183a5b3b7d5a38c0a6ab30b1b22b152aaf85780dd16bec
evidence:
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=21s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 21
    quote: in this release we have added a method to search for all words rather than any substring in a word it's a significantly faster
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=52s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 52
    quote: you use the new property optimized for text search equals true on your table Fields you can put it on your table fields or
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=92s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 92
    quote: you should add this to fields that the users want to find not to fields which where there are thousands of them or where
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=123s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 123
    quote: and in here you can see this line use optimize text search in lists and in this case it is enabled
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=263s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 263
    quote: so we've actually made it possible to switch directly by using the star star 1303 this will search in the Legacy way
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=464s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 464
    quote: the modern search on the other hand Builds an index on every word and now you have an index lookup into those words and
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=485s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 485
    quote: you can also use it on the record API it is built into the set filter method so you can now use the new
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=601s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 601
    quote: the syntax can be a little hard to grasp you saw the trick with using the page inspector to show the generated filters
  - kind: video
    url: https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=621s
    title: "What’s New: Data Search Improvements (For Developers) (2024 release wave 2)"
    date: "2024-10-08T15:00:49.000Z"
    commit: null
    t: 621
    quote: you would normally avoid using this for explicit business logic where you're better off using existing equals filters
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
video_id: lH2Z4xfdhmY
channel: yt-microsoft
source_name: Microsoft Dynamics 365 Business Central (YouTube)
url: https://www.youtube.com/watch?v=lH2Z4xfdhmY
published_at: "2024-10-08T15:00:49.000Z"
duration_s: 670
captions: full
audience:
  - developer
  - functional consultant
  - administrator
chapters:
  - t: 0
    title: Introduction and Modern Search Overview
  - t: 52
    title: Enabling Modern Search with optimized for text search Property
  - t: 113
    title: Modern Search in Item Lists and Page Search
  - t: 204
    title: Search Performance Comparison and Company-wide Search
  - t: 312
    title: Modern Search in Lookup and Full-Text Index Generation
  - t: 393
    title: Technical Implementation and API Usage
  - t: 536
    title: Page Inspector and Filter Syntax Considerations
  - t: 642
    title: Conclusion and Summary
features:
  - name: Modern Search
    status: unclear
    t: 21
    verified: false
    status_source: video
  - name: optimized for text search Property
    status: unclear
    t: 52
    verified: false
    status_source: video
  - name: Modern Search in Item Lists
    status: unclear
    t: 123
    verified: false
    status_source: video
  - name: Double And Filter Operator
    status: unclear
    t: 485
    verified: false
    status_source: video
  - name: Full-Text Search Index Generation
    status: unclear
    t: 393
    verified: false
    status_source: video
  - name: Star Prefix for Legacy Search
    status: unclear
    t: 263
    verified: false
    status_source: video
  - name: Company-wide Search with Modern Search
    status: unclear
    t: 283
    verified: false
    status_source: video
objects_mentioned:
  - codeunit data search and table code unit
quotes:
  - t: 21
    text: in this release we have added a method to search for all words rather than any substring in a word it's a significantly faster
    check: exact
  - t: 52
    text: you use the new property optimized for text search equals true on your table Fields you can put it on your table fields or
    check: exact
  - t: 92
    text: you should add this to fields that the users want to find not to fields which where there are thousands of them or where
    check: snapped
  - t: 123
    text: and in here you can see this line use optimize text search in lists and in this case it is enabled
    check: exact
  - t: 263
    text: so we've actually made it possible to switch directly by using the star star 1303 this will search in the Legacy way
    check: exact
  - t: 464
    text: the modern search on the other hand Builds an index on every word and now you have an index lookup into those words and
    check: snapped
  - t: 485
    text: you can also use it on the record API it is built into the set filter method so you can now use the new
    check: exact
  - t: 601
    text: the syntax can be a little hard to grasp you saw the trick with using the page inspector to show the generated filters
    check: exact
  - t: 621
    text: you would normally avoid using this for explicit business logic where you're better off using existing equals filters
    check: exact
---

# What’s New: Data Search Improvements (For Developers) (2024 release wave 2)

> Modern search in Business Central (2024 release wave 2) for developers: searches for all words instead of substrings, is enabled per field with the optimized for text search property, and applies to page search, lookup and company-wide search. Covers the new double and filter operator in SetFilter and full-text index generation.

[Watch on YouTube](https://www.youtube.com/watch?v=lH2Z4xfdhmY) · Microsoft Dynamics 365 Business Central (YouTube) · 2024-10-08 · 11:10 · tier official · reviewed (checked by Opus)

## Overview

The video explains modern search, which matches all words rather than any substring in a word and is significantly faster than the legacy search. It is demonstrated in item lists, page search, lookup and company-wide search, with a performance comparison against legacy search.

For developers, it shows how to enable modern search by setting the optimized for text search property on table and table extension fields. It also covers how the synchronization engine generates the full-text index, how the new double and filter operator works in the SetFilter method of the record API, and how the page inspector helps check generated filters, since the syntax can be hard to grasp.

## Key points

- Check that 'use optimize text search in lists' is enabled in Feature management.
- Set optimized for text search = true on table fields or table extension fields to enable modern search on them.
- Apply the property to primary key, descriptive text and identifying fields users search on; avoid fields that have thousands of rows or are used for grouping.
- Modern search matches all words, word order does not matter, and it is faster than legacy substring search.
- Users can switch to legacy contains search with a star prefix (demoed as 'star star 1303') or the drop-down or cogwheel option, in page search, lookup and company-wide search.
- SetFilter has a new double and filter operator for full-text matching. On fields without the property it falls back to a case-insensitive contains search.
- Use the page inspection pane to see the generated filter syntax. Avoid the double and operator in explicit business logic, because its behavior depends on user settings and field properties.

## Chapters

- [0:00](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=0s) Introduction and Modern Search Overview
- [0:52](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=52s) Enabling Modern Search with optimized for text search Property
- [1:53](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=113s) Modern Search in Item Lists and Page Search
- [3:24](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=204s) Search Performance Comparison and Company-wide Search
- [5:12](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=312s) Modern Search in Lookup and Full-Text Index Generation
- [6:33](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=393s) Technical Implementation and API Usage
- [8:56](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=536s) Page Inspector and Filter Syntax Considerations
- [10:42](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=642s) Conclusion and Summary

## Features

| Feature | Status | At |
|---|---|---|
| Modern Search | status not stated, demoed | [0:21](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=21s) |
| optimized for text search Property | status not stated | [0:52](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=52s) |
| Modern Search in Item Lists | status not stated, demoed | [2:03](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=123s) |
| Double And Filter Operator | status not stated, demoed | [8:05](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=485s) |
| Full-Text Search Index Generation | status not stated | [6:33](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=393s) |
| Star Prefix for Legacy Search | status not stated, demoed | [4:23](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=263s) |
| Company-wide Search with Modern Search | status not stated, demoed | [4:43](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=283s) |

## AL objects mentioned

As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.

- codeunit "data search and table code unit" at [10:21](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=621s)

Not found in BC28-30: codeunit "data search and table code unit".

## Quotes

- [0:21](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=21s) "in this release we have added a method to search for all words rather than any substring in a word it's a significantly faster"
- [0:52](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=52s) "you use the new property optimized for text search equals true on your table Fields you can put it on your table fields or"
- [1:32](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=92s) "you should add this to fields that the users want to find not to fields which where there are thousands of them or where"
- [2:03](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=123s) "and in here you can see this line use optimize text search in lists and in this case it is enabled"
- [4:23](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=263s) "so we've actually made it possible to switch directly by using the star star 1303 this will search in the Legacy way"
- [7:44](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=464s) "the modern search on the other hand Builds an index on every word and now you have an index lookup into those words and"
- [8:05](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=485s) "you can also use it on the record API it is built into the set filter method so you can now use the new"
- [10:01](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=601s) "the syntax can be a little hard to grasp you saw the trick with using the page inspector to show the generated filters"
- [10:21](https://www.youtube.com/watch?v=lH2Z4xfdhmY&t=621s) "you would normally avoid using this for explicit business logic where you're better off using existing equals filters"

Presenters (as heard): Jens M Peterson.
