The short answer: search runs against an index, not against your data directly, and almost every “why can’t I find this record” ticket comes down to one of four things: the object is not searchable, the field is not a searchable type, the record has not been indexed yet, or the user cannot see it. Search layouts control what the results look like once a record is found. They have nothing to do with whether it is found.
The index is the thing to understand
When a record is saved, the searchable text on it is queued for indexing. That is asynchronous, so a record created a moment ago may not appear in global search for a short while even though it opens perfectly from a list view or a report.
Search also tokenises. The index stores words, and a term is matched against whole tokens rather than any substring. A fragment from the middle of a word finds nothing unless you add a wildcard, and a trailing asterisk is the usual fix. Punctuation and hyphens split into tokens in ways that are not obvious, which is why a reference number sometimes matches and sometimes does not.
What is actually searchable
The object. Custom objects have an Allow Search setting in their definition. If it is off, no record of that object appears in search results, ever, with no error and no clue in the UI. It is the first thing to check on a custom object and people forget it constantly. External objects and a handful of standard objects have their own rules.
The field. Text, text area, long text area, email, phone, URL, name and auto number fields are indexed. Formula fields are not searchable, which catches out anyone who built a tidy reference number as a formula. Numbers, dates and checkboxes are not searched either. To find records by a computed value, store it in a real field with automation.
Search layouts
Search layouts are configured per object, in Object Manager, and they control presentation:
- Search Results. The columns shown in the results list for that object. The first few fields carry most of the weight, so put the identifying ones there.
- Lookup Dialogs. What appears when a user searches inside a lookup field.
- List View. The buttons available above a list.
Adding a field to the search results layout does not make that field searchable. It makes it visible in the results. This is the single most common misunderstanding about search configuration, and it produces a lot of pointless layout editing.
Why a record does not appear
Work down this list in order and you will find it:
- The user does not have read access to the object, or sharing does not grant them the record. Search respects both, so two users searching the same term get different results and both are correct.
- Allow Search is off on the custom object.
- The term only exists in a field type that is not indexed, most often a formula.
- The record was created seconds ago and is not indexed yet.
- The search term is a fragment of a word with no wildcard.
- The object is not shown in the results because the user has never used it. Global search groups results by object in the sidebar, ordered by the user’s own usage, and an object they have not touched can be further down than they look.
- The record is in the recycle bin, where search does not reach.
Lookups behave differently
A lookup field search is not global search. It searches a narrower set of fields, it weights the user’s recently viewed records heavily, and an empty lookup box often shows recent records rather than a search at all.
That is why a user can find a record in global search and not in a lookup on a record page. To match on something other than the name, add the field to that object’s lookup search layout. A lookup filter may be narrowing the results on top of all of this.
Frequently asked
Can I make a formula field searchable? No. Replicate the value into a text field with a record-triggered flow if users need to search on it. The duplication is annoying and it is the only route.
Does search find text inside files? Salesforce indexes the content of many file types, so searching for a phrase in a document can return the file. Very large files and unsupported formats are indexed by title only.
Why does an exact phrase in quotes return fewer results? Quoting makes the match exact and ordered rather than treating the terms independently. That is usually what you want when a general search returns hundreds of rows.