.search-button:hover background: #0056b3;
);
-- Categories table CREATE TABLE categories ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, type ENUM('entertainment', 'media') DEFAULT 'entertainment', parent_id INT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (parent_id) REFERENCES categories(id) ); -- Content items table CREATE TABLE content_items ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) NOT NULL, description TEXT, category_id INT NOT NULL, media_type ENUM('movie', 'tv_show', 'music', 'game', 'podcast', 'article', 'video') NOT NULL, release_date DATE, rating DECIMAL(3,1), duration_minutes INT, url VARCHAR(500), thumbnail_url VARCHAR(500), metadata JSON, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (category_id) REFERENCES categories(id), INDEX idx_category_media (category_id, media_type), FULLTEXT INDEX ft_search (title, description) ); Searching for- porn collection in-All Categorie...
// Advanced search with Elasticsearch class ElasticSearchService constructor() const Client = require('@elastic/elasticsearch'); this.client = new Client( node: 'http://localhost:9200' ); async indexContent(content) return await this.client.index( index: 'entertainment_content', id: content.id, body: title: content.title, description: content.description, category: content.category_name, media_type: content.media_type, rating: content.rating, release_date: content.release_date, suggestions: input: content.title.split(' '), weight: content.rating );
async getMediaTypes() return [ value: 'movie', label: 'Movies', icon: '🎬' , value: 'tv_show', label: 'TV Shows', icon: '📺' , value: 'music', label: 'Music', icon: '🎵' , value: 'game', label: 'Games', icon: '🎮' , value: 'podcast', label: 'Podcasts', icon: '🎙️' , value: 'article', label: 'Articles', icon: '📰' , value: 'video', label: 'Videos', icon: '📹' ]; .search-button:hover background: #0056b3
module.exports = router; // SearchInterface.jsx import React, useState, useEffect from 'react'; import './SearchInterface.css'; const SearchInterface = () => const [searchQuery, setSearchQuery] = useState(''); const [selectedCategory, setSelectedCategory] = useState(''); const [selectedMediaType, setSelectedMediaType] = useState(''); const [filters, setFilters] = useState( minRating: 0, maxRating: 10, dateRange: start: '', end: '' , sortBy: 'relevance' ); const [results, setResults] = useState([]); const [categories, setCategories] = useState([]); const [mediaTypes, setMediaTypes] = useState([]); const [loading, setLoading] = useState(false); const [pagination, setPagination] = useState( page: 1, totalPages: 1 );
.card-title margin: 0 0 10px 0; font-size: 18px; font-weight: 600; name VARCHAR(100) NOT NULL
.results-area flex: 1;
.search-header text-align: center; margin-bottom: 30px;