2202 Searching And Filtering
Searching and Filtering
Introduction
As your application grows, users need efficient ways to find specific information among hundreds or thousands of records. Search and filtering features are essential for creating usable, professional applications. Without them, users waste time scrolling through data trying to find what they need.
In this section, you'll learn how to implement powerful search and filtering capabilities that help users quickly locate exactly what they're looking for. You'll master search components, enterprise search, component-level filtering, filter operators, dynamic filters, and saved searches.
Why Search and Filtering Matter
Effective search and filtering provide critical benefits:
Improved User Experience
- Users find information in seconds instead of minutes
- Reduced frustration and confusion
- Increased application adoption
- Better overall satisfaction
Increased Productivity
- Less time searching means more time working
- Quick access to needed information
- Ability to work with large datasets efficiently
- Faster decision-making
Better Data Insights
- Users can segment and analyze data
- Filter to specific subsets for reporting
- Discover patterns and trends
- Compare different data slices
Scalability
- Application remains usable with thousands of records
- Performance stays good as data grows
- Support for complex queries
Understanding Search vs Filter
While often used interchangeably, search and filter serve different purposes:
Search
- Purpose: Find records containing specific keywords or phrases
- User Action: Enter text in search box
- Result: Records matching search terms across multiple fields
- Use When: User knows what they're looking for but not exactly where it is
- Example: Search for "John Smith" finds all records mentioning that name
Filter
- Purpose: Narrow records based on specific criteria
- User Action: Select values, set ranges, choose options
- Result: Records matching all selected criteria
- Use When: User wants to view a specific subset of data
- Example: Filter to show only "Active" customers in "California"
Combining Search and Filter
The most powerful interfaces combine both:
- Search for keywords
- Then filter results by specific criteria
- Progressively narrow down to exactly what's needed
Search Component Configuration
Tadabase offers a dedicated Search Component that provides powerful search capabilities.
Adding a Search Component
- Open Page Builder
- Navigate to the page where you want search
- Click "Add Component"
- Select Search Component
- Choose "Search" from component list
- Select the table to search
- Configure Search Fields
- Select which fields are searchable
- Order fields by importance
- Configure field weights (relevance)
- Set Display Options
- Choose search box placeholder text
- Configure search button text
- Set minimum characters for search
- Configure Results Display
- Select which fields show in results
- Order result fields
- Set results per page
Search Component Options
Searchable Fields
Choose which fields to include in search:
- Include fields users typically search
- Text fields (names, descriptions, notes)
- Number fields (IDs, order numbers)
- Email fields
- Phone fields
- Address fields
Search Behavior
- Match Type: Exact match, starts with, contains, fuzzy match
- Case Sensitivity: Case-sensitive or case-insensitive
- Minimum Length: Require minimum characters before searching
- Auto-Search: Search as user types vs require button click
Result Presentation
- Display format (table, cards, list)
- Fields to show in results
- Result ordering (relevance, date, alphabetical)
- Results per page
- Pagination style
Search Component Example
Example: Customer Search
Searchable Fields:
- First Name (high weight)
- Last Name (high weight)
- Company Name (high weight)
- Email (medium weight)
- Phone (medium weight)
- City (low weight)
- Notes (low weight)
Configuration:
- Placeholder: "Search customers by name, company, email..."
- Minimum 2 characters
- Case-insensitive
- Contains match
- Auto-search after 500ms pause
Results Display:
- Show: Name, Company, Email, Phone, Status
- Order by: Relevance, then Last Name
- 10 results per page
- Card layout with quick actions
Enterprise Search
Enterprise Search is Tadabase's advanced search feature that searches across multiple tables simultaneously, providing Google-like search functionality.
What is Enterprise Search?
Enterprise Search:
- Searches across all tables in your application
- Returns results from any table containing search terms
- Groups results by table/record type
- Provides instant, comprehensive search
- Ideal for applications with many tables
When to Use Enterprise Search
Enterprise Search is ideal when:
- Application has many interconnected tables
- Users need to find information without knowing where it's stored
- You want a single search box for everything
- Application serves as a knowledge base or repository
- Users frequently search across different data types
Configuring Enterprise Search
- Enable Enterprise Search
- Go to App Settings
- Enable "Enterprise Search"
- Configure global search settings
- Configure Searchable Tables
- Select which tables to include
- For each table, choose searchable fields
- Set field weights and priorities
- Add to Pages
- Add Enterprise Search component to pages
- Typically placed in header/navigation
- Configure display and behavior
- Customize Results
- Set result grouping
- Configure result previews
- Set maximum results per table
Enterprise Search Example
Example: CRM Enterprise Search
Searchable Tables:
- Customers: Name, Company, Email, Phone, Address
- Contacts: Name, Email, Phone, Title
- Opportunities: Deal Name, Description, Account
- Activities: Subject, Notes, Related To
- Products: Product Name, Description, SKU
Search for "Acme":
- Returns customer "Acme Corp"
- Returns contacts at Acme
- Returns opportunities for Acme
- Returns activities related to Acme
- All grouped by record type
Enterprise Search Best Practices
- Include all user-facing tables
- Exclude system/administrative tables
- Weight important fields higher
- Keep result previews concise
- Provide clear result categorization
- Enable quick actions from results
Component-Level Filtering
Every data component in Tadabase (Tables, Cards, Calendars, etc.) can have filtering enabled, allowing users to narrow displayed records.
Types of Component Filters
1. Basic Filters
Simple dropdown or checkbox filters for specific fields:
- Status filter (Active, Inactive, All)
- Category filter
- Type filter
- Yes/No filters
2. Advanced Filters
Complex filtering with multiple criteria:
- Multiple field filters
- Date range filters
- Number range filters
- Text search within component
3. Preset Filters
Predefined filter views:
- "My Records"
- "This Week"
- "High Priority"
- "Overdue Items"
Adding Filters to Components
- Open Component Settings
- Edit the table, card, or other component
- Navigate to "Filters" section
- Add Filter Fields
- Click "Add Filter"
- Select field to filter on
- Choose filter type
- Configure Filter Options
- Set filter label
- Choose filter style (dropdown, checkboxes, radio buttons)
- Set default value
- Enable "All" option
- Position Filters
- Above component (horizontal)
- Sidebar (vertical)
- Collapsible panel
- Configure Filter Behavior
- Auto-apply on change
- Require "Apply Filter" button
- Show record count
- Enable filter reset
Filter Examples
Example 1: Task Table Filters
Filters Available:
- Status: Dropdown (All, Not Started, In Progress, Completed)
- Priority: Checkboxes (Low, Medium, High, Urgent)
- Assigned To: Dropdown (All Users, Me, Unassigned)
- Due Date: Date range picker
- Project: Dropdown (All Projects, specific projects)
Filters Available:
- Category: Checkboxes (Electronics, Clothing, Home, Sports)
- Price Range: Slider ($0 - $500)
- Brand: Searchable dropdown
- In Stock: Toggle (Yes/No)
- Rating: Stars (1+, 2+, 3+, 4+, 5)
Filters Available:
- Status: Radio buttons (Active, Inactive, All)
- Type: Dropdown (Individual, Business, Partner)
- Location: Cascading dropdowns (State → City)
- Account Manager: Dropdown
- Joined Date: Date range
Filter UI Best Practices
- Limit Filter Count: Show 3-5 most useful filters
- Clear Defaults: Set sensible default filter values
- Show Active Filters: Indicate which filters are applied
- Easy Reset: Provide "Clear All Filters" option
- Show Results Count: Display number of matching records
- Responsive Design: Ensure filters work on mobile
- Logical Grouping: Group related filters together
Filter Operators
Filter operators define how field values are compared when filtering records. Understanding operators is essential for creating effective filters.
Text Field Operators
| Operator | Description | Example |
| Equals | Exact match | Status equals "Active" |
| Does Not Equal | Not this value | Status does not equal "Inactive" |
| Contains | Includes text anywhere | Name contains "Smith" |
| Does Not Contain | Doesn't include text | Notes does not contain "urgent" |
| Starts With | Begins with text | Last Name starts with "A" |
| Ends With | Finishes with text | Email ends with "@company.com" |
| Is Empty | Field has no value | Notes is empty |
| Is Not Empty | Field has any value | Email is not empty |
Number Field Operators
| Operator | Description | Example |
| Equals | Exactly this number | Quantity equals 100 |
| Greater Than | Higher than value | Price greater than 50 |
| Less Than | Lower than value | Stock less than 10 |
| Greater Than or Equal | At least this value | Age greater than or equal to 18 |
| Less Than or Equal | At most this value | Discount less than or equal to 25% |
| Between | Within range | Price between 100 and 500 |
| Is Empty | No value entered | Score is empty |
Date Field Operators
| Operator | Description | Example |
| Equals | Exact date | Due Date equals 2026-02-15 |
| Before | Earlier than date | Created before 2026-01-01 |
| After | Later than date | Start Date after 2026-03-01 |
| Between | Within date range | Order Date between 2026-01-01 and 2026-01-31 |
| Today | Current date | Due Date is today |
| Yesterday | Previous day | Completed yesterday |
| This Week | Current week | Created this week |
| This Month | Current month | Invoice Date this month |
| Last 7 Days | Previous week | Activity last 7 days |
| Last 30 Days | Previous month | Orders last 30 days |
| Is Empty | No date set | Completed Date is empty |
Connection Field Operators
| Operator | Description | Example |
| Is | Connected to specific record | Customer is "Acme Corp" |
| Is Not | Not connected to record | Assigned To is not "John Smith" |
| Is Empty | No connection | Manager is empty |
| Is Not Empty | Has connection | Project is not empty |
Using Operators Effectively
- Choose operators that match user intent
- Use "contains" for flexible text searching
- Use ranges for numbers and dates when appropriate
- Provide "is empty" option for finding missing data
- Combine operators for complex filtering
Dynamic Filters
Dynamic filters automatically adjust based on context, user, or other variables. They create personalized, intelligent filtering experiences.
Types of Dynamic Filters
1. User-Based Filters
Filter based on logged-in user:
- "My Records" - Records created by current user
- "Assigned to Me" - Records assigned to current user
- "My Team" - Records for user's department/team
- "My Territory" - Records in user's region
2. Date-Based Filters
Filter based on current date:
- "Due Today"
- "This Week"
- "This Month"
- "Overdue" - Due date before today
- "Upcoming" - Due date in next 7 days
3. Context-Based Filters
Filter based on page context:
- When viewing customer → Show only that customer's orders
- When viewing project → Show only that project's tasks
- When viewing category → Show only products in category
4. Role-Based Filters
Filter based on user role:
- Managers see all records
- Sales reps see only their accounts
- Support staff see only assigned tickets
Implementing Dynamic Filters
Current User Filters
- Open component filter settings
- Add filter on user-related field
- Set operator to "Is"
- Set value to "{Current User}"
- Hide filter from user (auto-applied)
Date Filters
- Add filter on date field
- Use dynamic date operators (Today, This Week, etc.)
- Can combine with relative dates
- Update automatically each day
Contextual Filters
- When component is on detail page
- Filter automatically applies to related records
- Use page context to set filter value
- No user action required
Dynamic Filter Examples
Example 1: Personal Task Dashboard
- Filter 1: Assigned To = {Current User} (hidden, auto-applied)
- Filter 2: Status ≠ "Completed" (hidden, auto-applied)
- Filter 3: Due Date = "This Week" (visible, can change)
- Result: User sees only their incomplete tasks due this week
- Filter 1: Owner = {Current User} (hidden)
- Filter 2: Stage ≠ "Closed Won" AND "Closed Lost" (hidden)
- Filter 3: Expected Close Date = "This Quarter" (visible)
- Result: Sales rep sees their active deals closing this quarter
- Orders component shows only this customer's orders
- Contacts component shows only this customer's contacts
- Activities component shows only this customer's activities
- All filters applied automatically based on page context
Dynamic Filter Best Practices
- Make common filters dynamic (saves user time)
- Allow users to override when appropriate
- Clearly indicate when filters are auto-applied
- Provide way to view "all" records
- Test with different user roles
- Document dynamic filter behavior
Saved Searches
Saved Searches allow users to save filter configurations for quick reuse. This is essential for users who frequently need the same filtered views.
Benefits of Saved Searches
- Quick access to frequently used filters
- No need to reconfigure filters repeatedly
- Share common views across team
- Standardize reporting views
- Improve consistency
- Save time
Types of Saved Searches
1. Personal Saved Searches
- Created by individual users
- Visible only to creator
- Customized to personal workflow
- Can be modified anytime
2. Shared Saved Searches
- Created by admin or power users
- Available to all users
- Standardized views
- Common reports and dashboards
3. Default Saved Searches
- Preset filter configurations
- Applied automatically on page load
- Can be changed by user
Implementing Saved Searches
- Enable Saved Searches
- Open component settings
- Enable "Saved Searches" feature
- Configure save options
- Create Saved Search
- User applies desired filters
- Clicks "Save Search"
- Names the search
- Optionally shares with others
- Use Saved Search
- Select from saved search dropdown
- Filters apply automatically
- Can modify and re-save
- Manage Saved Searches
- Rename searches
- Delete old searches
- Update filter criteria
- Change sharing settings
Saved Search Examples
Example: Support Ticket System
Common Saved Searches:
- "My Open Tickets" - Assigned to me, Status = Open
- "High Priority" - Priority = High, Status ≠ Closed
- "Overdue" - Due Date < Today, Status ≠ Closed
- "This Week" - Created Date = This Week
- "Waiting on Customer" - Status = Pending Customer Response
- "Escalated" - Escalated = Yes, Status = Open
- "Unassigned" - Assigned To is empty, Status = Open
Users can:
- Click saved search name to apply instantly
- See record count for each search
- Create their own custom searches
- Modify searches and save updates
Saved Search Best Practices
- Create searches for common use cases
- Use clear, descriptive names
- Organize searches by category if many exist
- Regularly review and delete unused searches
- Document shared searches for team
- Make most common search the default
Combining Search and Filter Techniques
The most powerful interfaces combine multiple techniques:
Layered Filtering
- Start Broad: Show all records or smart default filter
- Add Search: User searches for keywords
- Apply Filters: Further narrow with specific criteria
- Save Configuration: Save as favorite for reuse
Progressive Disclosure
- Show basic filters by default
- Provide "Advanced Filters" option
- Hide complexity until needed
- Balance simplicity with power
Smart Defaults
- Apply sensible default filters
- Based on user role and context
- Allow easy override
- Learn from user behavior
Performance Considerations
As data grows, search and filter performance matters:
Optimization Strategies
- Index Fields: Index frequently filtered fields
- Limit Results: Use pagination instead of loading all
- Debounce Search: Wait for user to finish typing
- Cache Results: Reuse recent search results
- Optimize Queries: Use efficient filter combinations
- Lazy Loading: Load data as needed
User Experience
- Show loading indicators
- Display result counts
- Provide feedback on filter actions
- Handle no results gracefully
- Enable filter refinement
Mobile Considerations
Search and filters must work on mobile devices:
- Responsive filter layouts
- Touch-friendly controls
- Simplified mobile filters
- Collapsible filter panels
- Easy filter reset
- Prominent search box
Summary
In this section, you've mastered search and filtering techniques:
- Search Components provide keyword search across multiple fields
- Enterprise Search searches across all tables simultaneously
- Component Filters allow users to narrow displayed records
- Filter Operators define how values are compared
- Dynamic Filters automatically adjust based on context
- Saved Searches enable quick reuse of filter configurations
These features are essential for creating usable applications with large datasets. Users can quickly find exactly what they need without frustration.
Next: Continue to Working with Records to learn efficient record management techniques.
Hands-On Exercise (To Be Added)
Exercise placeholders will include practical activities such as:
- Add a search component to a customer table
- Configure enterprise search across multiple tables
- Create dynamic filters based on current user
- Set up saved searches for common views
- Build a comprehensive filter interface with multiple operators
Knowledge Check (To Be Added)
Quiz questions will test understanding of:
- Difference between search and filter
- When to use enterprise search
- Appropriate filter operators for different field types
- Benefits of dynamic filters
- Best practices for saved searches

We'd love to hear your feedback.