# Searching Records

Find records quickly with Simpl's fast, intuitive search functionality.

## Overview

Simpl provides a simple search experience that works across all text columns in your table. Just start typing to find matching records.

## How Search Works

### Text Column Search

Search queries are matched against all text-type columns in your table, including:

- `text`
- `varchar`
- `char`
- `citext`

Non-text columns (numbers, dates, JSON, etc.) are not included in search results.

### Case-Insensitive Matching

All searches are case-insensitive. Searching for "john", "John", or "JOHN" will return the same results.

### Partial Matching

Search finds partial matches anywhere in the field value:

| Search Query | Matches |
| --- | --- |
| `smith` | "John Smith", "Smithson", "Blacksmith" |
| `@gmail` | " [user@gmail.com](mailto:user@gmail.com)", " [test@gmail.org](mailto:test@gmail.org)" |
| `2024` | "Invoice-2024-001", "Report 2024" |

### Multiple Words

When you search for multiple words, results must contain **all words** (AND logic):

- Searching `john smith` finds records containing both "john" AND "smith"
- Words can appear in different columns
- Word order doesn't matter

## Using Search

### Starting a Search

1. Click the **search input** at the top of the list view
2. Type your search query
3. Results update automatically as you type

### Search Debouncing

Simpl waits 300ms after you stop typing before executing the search. This prevents unnecessary queries while you're still typing.

### Viewing Results

Search results appear in the same list view format:

- Records matching your query are displayed
- Up to 50 results are shown
- Same card layout with title and field pills

### Clearing Search

To return to the full table view:

- Clear the search input
- Click the **X** button in the search field
- Press **Escape** while in the search input

## Search Tips

### Finding Specific Records

For best results:

1. **Use unique identifiers** when you know them (IDs, emails, order numbers)
2. **Start broad, then narrow** \- begin with one term, add more to filter
3. **Try variations** if your first search doesn't match

### Dealing with Large Tables

For tables with many records:

- Search is often faster than scrolling
- Combine search with [filters](/content/docs/features/filtering/index.html) for precision
- Consider using [sorting](/content/docs/features/sorting/index.html) to organize results

### What Search Doesn't Do

Current limitations to be aware of:

- **No fuzzy matching** \- Typos won't be corrected automatically
- **No full-text search** \- Uses simple LIKE matching, not PostgreSQL full-text search
- **Text columns only** \- Numbers, dates, and JSON aren't searchable via the search bar

For more precise queries, use [Filters](/content/docs/features/filtering/index.html).

## Search and Other Features

### Search + Filters

Search and filters work together:

1. Apply a filter to narrow your dataset
2. Search within the filtered results
3. Both conditions must be met for records to appear

### Search + Sorting

Your sort order is preserved while searching:

- Results are sorted according to your current sort settings
- Change sort order to reorganize search results

### Search in URL

Search queries are reflected in the URL, making it easy to:

- Share search results with teammates
- Bookmark common searches
- Use browser back/forward to navigate search history

## Example Searches

| Use Case | Search Query |
| --- | --- |
| Find user by email | `john@example.com` |
| Find orders from a company | `acme corp` |
| Find records mentioning a feature | `dark mode` |
| Find by partial ID | `abc-123` |
| Find by name fragments | `john sm` |

## Next Steps

For more precise data queries, explore:

- [Advanced Filtering](/content/docs/features/filtering/index.html) \- Filter by any column with type-aware operators
- [Sorting Records](/content/docs/features/sorting/index.html) \- Order your results
