Appearance
Advanced Search Filters
Overview
The Advanced Search Filters system provides a comprehensive filtering interface with multiple criteria including file types, tags, custom fields, dates, users, and more. It supports filter presets, combinations, and integration with Typesense search.
Filter Types
1. File Type Filter
- Image, Video, Audio, Document, etc.
- Multiple selection
- Pagination support
2. Tag Filter
- Tag selection
- Tag search
- Multiple tags
3. Custom Field Filter
- Field-specific filters
- Value selection
- Type-based filtering
4. Collage Filter
- Collage selection
- Multiple collages
5. Uploaded By Filter
- User selection
- Multiple users
6. Date Range Filter
- Created date
- Modified date
- Upload date
7. Orientation Filter
- Horizontal
- Vertical
- Square
8. Permission Filter
- Public
- Private
- Shared
Frontend Implementation
Filter Component
vue
<template>
<v-card class="filter-panel">
<v-card-title>Filters</v-card-title>
<v-card-text>
<!-- File Type Filter -->
<v-select
v-model="filters.fileTypes"
:items="fileTypes"
label="File Types"
multiple
chips
/>
<!-- Tag Filter -->
<v-autocomplete
v-model="filters.tags"
:items="availableTags"
label="Tags"
multiple
chips
/>
<!-- Date Range -->
<v-date-picker
v-model="filters.dateRange"
range
/>
<!-- Uploaded By -->
<v-select
v-model="filters.uploadedBy"
:items="users"
label="Uploaded By"
multiple
/>
</v-card-text>
</v-card>
</template>Filter Query Building
javascript
buildFilterQuery(filters) {
const queries = []
if (filters.fileTypes?.length > 0) {
const typeFilter = filters.fileTypes
.map(type => `file_type:=${type}`)
.join(' || ')
queries.push(`(${typeFilter})`)
}
if (filters.tags?.length > 0) {
const tagFilter = filters.tags
.map(tag => `tags:=[${tag}]`)
.join(' && ')
queries.push(`(${tagFilter})`)
}
if (filters.dateFrom) {
const timestamp = Math.floor(new Date(filters.dateFrom).getTime() / 1000)
queries.push(`modified_at:>=${timestamp}`)
}
return queries.join(' && ')
}Related Documentation
- Global Search - Search system
- Typesense Integration - Search backend
- Tags and Custom Fields - Metadata system