Imagine unlocking your data's full potential with a powerful search engine—or boosting conversions by helping users find exactly what they need. And with Google’s 90% domination on the market, it is clear that a well-designed search tool is the key to success.

Having extensive experience in creating search engines for various projects, including online shops and specialized platforms, our team is ready to share practical knowledge to help you build an effective search engine.

This article will explain how to make your own search engine, tailored to serve your business needs, be it a niche market search, a robust multimedia database, or a document search platform.

What is a search engine?

The main functions of a search engine are to locate, process, and organize data to provide relevant and efficient search results. This involves either crawling the web to gather data for external searches or internal database query, indexing this data for quick retrieval, and ranking results according to their relevance to the user's query.

In this article, by search engine we mean a few things:

  • the tool that helps search the web to find answers to your queries e.g. Google, Bing. 
  • the tool within the website that searches the web for a certain information e.g. Welcome Saudi, our project which aims at providing region-specific flights, hotels, and sightseeings aggregated from different platforms.
  • inner search tools that help find information\page\item within certain websites and apps e.g. search on Amazon or Salesforce CRM.

The main differences between external and internal search:

external and internal search engine difference   

  • An external search engine is designed to search the entire World Wide Web.
  • An internal search engine operates within a specific organization or website.

Later, we will elaborate on the types of search engines more specifically. For now, let’s learn what components are needed for building a search engine.

The main components of a search engine

Most types of search engines share the same common components.

search engine components  

  1. Web crawlers (Spiders) continuously browse the web to discover new and updated pages. The most famous example is Googlebot. This component is not required for internal search engines and can be replaced with data connectors for internal data sources with databases, document management systems, and applications.
  2. Indexing system analyzes and stores information from crawled pages in an organized database. It has a parser that extracts text, metadata, and links from pages, and an indexer that creates an index of words and their locations. 
  3. Query processor interprets and processes user search queries. It has a query parser that analyzes the structure and intent of the query, and a relevance algorithm that determines the relevance of documents to the query.
  4. Ranking algorithms (e.g. PageRank, BERT) order search results by relevance and quality.
  5. Search interface is the user interface where users input queries and view results. It consists of a search box - input field for user queries, and results page that displays ranked search results, including snippets, images, and other media.
  6. Data storage stores the indexed data and metadata. External search engines use scalable, distributed systems to handle vast web data, while internal engines often use centralized storage tailored to specific organizational needs.

Types of search engines and examples

There are various types of search engines, each designed to meet specific needs based on their characteristics. To make it easier to understand, we've categorized them based on their source, input data, application, and functionality.

search engine types  

By source:

  • Internal (Inner): Designed to query data within a specific organization or system, including corporate databases, personal devices, or digital asset management systems. Example: MotionElements, a royalty-free platform for stock footage and music, allows for the discovery of a myriad of media files.
  • External (Outer): Operate on data available on the broader internet or across multiple external databases, providing users with information from various sources. Example: Yahoo! for general search or Skyscanner which analyzes other websites to find cheap flights.

By input data:

  • Text: Process searches using words and phrases. Keyword search directly matches words entered by users to content on websites and documents. Semantic search, however, takes this a step further by using technology to understand the deeper meaning and context of words in a search query. Some search engines combine both keyword and semantic search to deliver even more comprehensive outcomes. Example: Greenice keyword search for articles, Google’s semantic search for complex queries.
  • Visual: Process images and videos to help users find related content. With image search, users can upload or link an image to find similar images or related content across the web. Video search works similarly but focuses on the visual and audio elements within videos. Example: Google Images for search by images, ICONO AI for video search.
  • Audio: Process sounds, music, and speech to help users find specific audio content. They identify songs or other audio by matching clips with a large database of audio files. Speech recognition systems convert spoken words into text, making them useful for tasks like voice commands. Example: Shazam for music search, speech recognition in Siri and Google Assistant.

By application (industry):

  • General: Provide broad search capabilities that span across various content types and topics on the internet, suitable for general inquiries. Example: Google, Bing.
  • Vertical (Specialized): Focus on specific industries or types of content, delivering more precise results within a particular domain. Example: Zillow for real estate, PubMed for medical research.
  • eCommerce: Tailored specifically for shopping and marketplace platforms, these search engines help users find products based on various attributes like brand, price, and reviews. Example: Amazon's Search Engine, eBay's search functionality.
  • Media: Designed for searching multimedia content such as images, videos, and music, offering advanced features like image recognition and audio search. Example: YouTube video search, Spotify music search. 
  • Local: Focus on providing results relevant to a specific geographic area, often integrated with maps and business listings. Example: Google Maps, Yelp.
  • Academic: Aimed at students, researchers, and academicians, these search engines specialize in scholarly literature and academic resources. Example: Google Scholar, JSTOR. 
  • Enterprise: Designed for businesses needing to navigate vast amounts of internal data, these search engines enhance corporate knowledge management by indexing databases, file systems, and intranet content. Example: Stripe and Morgan Stanley actively use AI-powered search for internal knowledge base.

By functionality:

  • Metasearch engines: Generate its results by leveraging the data from other web search engines. They accept user queries, promptly search other engines for results, and then compile, rank, and display the information to the user. Example: Kayak travel search and Dogpile general web search.
  • Digital Asset Management (DAM) systems: Tailored to efficiently locate, manage, and retrieve multimedia content focusing on discoverability. These systems offer advanced search options, including metadata, keyword, and faceted searches, specifically designed to handle the complexities of sorting and accessing extensive digital asset libraries. Example: Our project, Wibbi, an exercise program management platform for physical therapists, provides therapists with the ability to search through an extensive database of over 15,000 home exercise videos to find the necessary resources efficiently.
  • Content aggregators: These search engines gather and compile content from various online sources for specific topics or interests, often presenting them in a summarized or categorized format. This type is useful for news, academic research, and topic-specific inquiries. Example: Google News and Feedly.
  • Collaborative filtering engines: Often used in eCommerce and media streaming services, these search engines utilize user behavior data to recommend products, services, or content by predicting the user’s preferences based on the preferences of similar users. Example: Netflix movie recommendations and Amazon product recommendations. 
  • Corporate search engines: Designed specifically for searching the internal content of an organization. These search engines integrate data across various corporate systems such as emails, document management systems, and corporate wikis to streamline information retrieval. Example: IBM Watson Discovery, Google Cloud Search.
  • Federated search engines: These engines can query multiple data sources simultaneously from a single interface, typically used in environments where data is stored in decentralized formats, such as healthcare systems, legal firms, and large enterprises. Example: Mayo Clinic with IBM Watson Health enhancing patient care through data integration, DLA Piper with LexisNexis streamline legal research for global operations.

Depending on your business, you might consider different types of search engines. For instance, a metasearch engine aggregates data from other search engines and could be ideal for niche markets like travel or job searches. Alternatively, if you're managing large volumes of images, videos, or audio, a multimedia database search tailored for digital asset management (DAM) systems might be required.

Oftentimes, you can meet so-called hybrid search engines which combine several types of functionality, input data, or even applications. Think of almighty Google that offers you “Everything-everywhere-all-at-once” capabilities.

Features of search engines

When building a search engine, several functionality-related features are critical to ensure it meets the user needs. But apart from basic features like filtering, autocomplete, and multilingual support there are features specific to different types of search engines.

Basic features:

  • Query autocomplete: Enhances user experience by suggesting potential search terms as users type, minimizing effort and errors. For example, Google uses this feature to predict queries, offering suggestions in a drop-down list.
  • Voice search integration: Facilitates searches using voice commands, accommodating accessibility and mobile usage. For instance, Bing integrates with Microsoft’s Cortana to enable voice-activated searches. 
  • Personalization: Tailors search results based on user's past behavior, location, and other personal data to increase relevance. Bing personalizes search results based on the user's previous interactions, location, and other contextual information, aiming to make the search results more relevant to each individual user.
  • Thumbnail previews: Displays small previews of image or video files directly in the search results, aiding quick identification of the right assets. Canto provides thumbnail previews for files directly in the search results, which helps users quickly identify the right assets without opening each one.
  • Filters (faceted search): Help users refine search results and assist in making informed decisions by allowing users to sort products based on preferences (e.g. price, category, color, etc.). Amazon allows users to refine product searches using various filters like price, category, condition, and seller rating, helping buyers navigate through extensive listings.

Amazon filter system  

  • Metadata (keyword) search: Focuses on searching within defined metadata fields attached to an asset. Metadata can include structured data such as tags, author names, creation dates, file types, and other specific attributes that have been predefined. This type of search is more precise and is used when users know the exact metadata criteria they want to filter by. Canto DAM system allows users to search assets using detailed metadata fields, including copyright info, or custom metadata, streamlining the retrieval of specific files.
  • Multilingual support: Enhances search engine accessibility by supporting queries and results in multiple languages, catering to a global audience. For instance, Bing automatically detects and responds to user queries in the language entered, breaking down language barriers and broadening its usability worldwide. Here are some extra features specific to different types of search engines:

Web search engine (like Google)

  • Advanced search operators: Allow users to refine and target their search queries using specific commands that filter search results more precisely. Google also allows users to refine searches with operators like quotes for exact phrases, or the minus sign to exclude certain words, making searches more precise.
  • Knowledge graphs: Provides contextual information or summaries alongside search results, pulling from a vast database of structured data about entities. Google’s Knowledge Graph displays panels alongside search results that provide quick facts, related topics, and deeper insights into the search query, sourced from a broad database of structured data. 
  • Safe search filters: Filters out potentially offensive content, providing safer browsing experiences, especially for younger users. DuckDuckGo has a strict safe search filter that automatically excludes explicit content from search results, aligning with its user protection policies.
  • AI answer: Uses AI, specifically natural language processing (NLP) and machine learning, to interpret the intent of user queries. It quickly identifies and ranks relevant information, then provides concise, direct answers pulled from the most relevant pages. For example, Google AI overview will provide a direct response to users' questions. This functionality enhances efficiency by delivering quick, accurate information directly in the search results.

Internal search engine in DAM system

  • Version control: Keeps records of all versions of an asset so users can easily find or go back to earlier versions when needed. SharePoint offers version control where users can search through document versions to review history or retrieve previous versions, ensuring data integrity and traceability.
  • Bulk operations: Enables the application of actions (like download, move, delete) to multiple search results at once, streamlining workflow. In Bynder, users can perform bulk operations on search results such as applying metadata, downloading, or sharing multiple assets at once, enhancing operational efficiency. 
  • Rights management: Integrates with the system's permissions settings to ensure users only see search results for assets they are authorized to access. SharePoint integrates search with rights management, ensuring that users see only those documents they have permission to access, thereby securing sensitive information.

Marketplace search engine

  • Real-time inventory updates: Automatically refreshes product availability in search results to ensure accurate stock levels are displayed, preventing customer disappointment over unavailable items. For instance, Amazon updates its inventory status in real-time, allowing customers to see up-to-the-minute availability, and ensuring they can make informed purchasing decisions without encountering out-of-stock issues.

amazon in-stock feature  

  • Interactive filters: Enables more interactive and user-friendly filtering options, such as sliders for price ranges, checkboxes for features, and visual selectors for colors. This functionality can be seen on platforms like Wayfair, where such detailed filters help customers refine their search results more intuitively, significantly enhancing user experience and satisfaction. 
  • Localized content: Adapts search results based on the user’s geographical location, displaying products available in the user’s area or in their preferred language. Alibaba tailors its search results to the user’s location, showing products available locally and in the user’s preferred language to enhance relevance and reduce shipping complexities.

You can also think of security features like secure data handling, encryption, and protection against common vulnerabilities like SQL injection and cross-site scripting (XSS) to protect user queries and data.

In addition, integrating AI into search functionalities has become increasingly popular due to its significant impact on enhancing search capabilities. But it deserves its own paragraph.

Talk to our experts about your project

Contact Us

How AI is used in search engines

Artificial Intelligence is a must-have today. It significantly enhances various components and features across different types of search engines, using specialized elements like Natural Language Processing, Computer Vision, and Retrieval-Augmented Generation to cater to specific operational needs.

Here’s a brief explanation of each element related to AI-powered search technologies:

how AI is used in search engines  

Natural Language Processing (NLP)

In search engines, NLP is used to improve the understanding of user queries, allowing the system to interpret the intent and contextual meaning of words in search phrases. This makes the search engine more effective at delivering relevant results, even for complex or conversational queries. For instance, when you ask a question on Google in natural language, NLP algorithms help understand the question and fetch the most relevant answers.

It can be integrated into query processors, ranking algorithms, and even voice recognition: 

  • Query processor: NLP enhances the query processor's ability to understand and interpret natural language queries, providing more relevant search results. For example, Bing utilizes NLP to decipher user intent and deliver contextually appropriate results.
  • Ranking algorithms: Google incorporates NLP models like BERT to analyze the context within search queries, allowing for a nuanced understanding and more accurate ranking of pages.
  • Voice (speech) recognition: Apple's Siri leverages advanced voice recognition algorithms to understand and process user commands, facilitating interactions and searches through verbal input.

Computer Vision (Image AI)

Computer vision is an AI technology that allows computers and systems to derive meaningful information from visual inputs like images and video. In the context of search engines, computer vision can power image search functionalities. For example, users can upload an image, and the search engine uses computer vision to analyze its content, identify objects, and retrieve related images or information from its database.

Computer vision can help in the following ways: 

  • Indexing system: In digital asset management systems like Adobe Experience Manager, computer vision is used to automatically tag images and videos based on visual content, which improves the accuracy and searchability of metadata. 
  • Search interface: Platforms like Pinterest use computer vision to enable image-based search functionalities, allowing users to upload images to find similar items or related content.

Retrieval-Augmented Generation (RAG)

RAG is a method used in search engines to combine fetching information with creating new content. First, it pulls relevant documents or data from a database. Then, it uses that information to generate detailed and context-specific answers or responses. This is especially helpful when answers need to pull together facts from different sources to provide thorough, accurate explanations. For example, RAG can improve chatbots, making them capable of providing more detailed and relevant answers by blending information it retrieves with the ability to generate new responses that fit the context of the question.

This element can be applied to such features as: 

  • AI answer: RAG is employed to synthesize information from various data sources to provide detailed, accurate answers to queries. An example is the use of RAG in enhancing AI-driven chatbot interactions, where it generates informed and contextually relevant responses.
  • Metadata search: In internal DAM systems, RAG can enhance metadata search by retrieving documents that inform the metadata tagging process, improving the accuracy and relevance of search results. This involves using a language model to analyze the retrieved documents and suggest appropriate metadata tags, ensuring more precise categorization and easier retrieval of assets.
  • Advanced search operators: RAG enhances search engines by pulling relevant documents to better understand and respond to the semantic meaning of queries. This allows for more precise filtering and targeting of search results, improving the accuracy and relevance of responses.

Generative AI

Generative AI is a powerful part of search technology that helps create personalized answers and content for users. It works by using advanced language understanding to assist with decisions and generate useful information tailored to specific queries. This type of AI can also be customized to better serve individual needs by incorporating specific data sets. This means it can pull the most relevant information to answer questions or provide suggestions, making search results more helpful and accurate for each user.

  • Personalization: Copilots, such as those integrated into Microsoft’s Edge browser, utilize generative AI of GPT models to tailor the search interface and results to individual user preferences, enhancing personalization and user engagement. 
  • AI-generated answers: Google’s AI capabilities are powering its abilities to generate ready customized answers instead of just providing a link. By integrating these advanced features you can dramatically improve user satisfaction and operational efficiency. Such features not only cater to the evolving needs of users but also ensure that the platform remains competitive and relevant.

Steps to make your own search engine

Now, let’s figure out how to create your own search engine. You will have to go through some essential steps from planning what you want to create to launching it. 

search engine development steps
Search engine development steps

 

Planning

Whether you want to start a search engine like Google or build a marketplace search engine, several key aspects must be carefully considered to ensure the project meets its intended goals and serves its users effectively:

  • Target audience: Clearly identify the specific user groups who will be using the search engine. This could range from the general public to company employees, or users in a specific industry. Understanding the audience helps tailor the design and functionality to meet their needs and expectations. 
  • Search objectives: Define precisely what the search engine aims to help users accomplish. Objectives can vary widely, such as finding products on an e-commerce site, retrieving documents in a corporate environment, or locating local services. 
  • Types of data: Decide on the types of data the search engine will index. This could include a single type of data like text, or a combination of various formats such as images, videos, and audio files. The choice will impact the indexing strategies and technologies needed.
  • Data sources: Identify the sources from which data will be gathered. This could involve using web crawlers to scan the internet, accessing internal databases within an organization, connecting to external APIs, or using public datasets. The selection of data sources should align with the types of data being indexed and the search objectives.

For optimal results, this plan should be thoroughly discussed during the Discovery Phase. Following this discussion, you will receive an SRS (Software Requirements Specification) document, ensuring that every team member has a clear and unified understanding of the project requirements.

Additionally, plan for a system that can grow with your user base and data volume, choosing technologies that can scale efficiently and maintain performance under load.

Search engine design

The user interface (UI) is important for effectiveness and user satisfaction. It’s essential to ensure that the UI is intuitive and accessible across various devices, which includes desktops, tablets, and smartphones. This requires a responsive design approach where the layout and elements of the search engine adapt dynamically to different screen sizes and resolutions.

Elements such as search bars, filters, and result displays must be clear and easy to interact with, regardless of the device used. The goal is to minimize user effort in performing searches and accessing information, thereby increasing engagement and satisfaction.

Privacy and security considerations

Data privacy laws significantly influence search engine development by requiring explicit user consent for data collection and providing users with rights to access and control their information. Compliance involves implementing robust data protection measures, ensuring transparency about how data is handled, and maintaining clear records of data processing activities. These requirements are critical not only for legal compliance but also for building user trust and enhancing the credibility of your search engine.

Technology stack

The choice of technologies depends on the specific requirements of the project, including the nature of the data, the complexity of the search functionality, and the intended user interface.

For AI-driven document search engines, such as those used by sales teams to access internal documents, a robust setup might include:

  • Front end: React coupled with Material-UI for a responsive, modern user interface that enhances user interaction.
  • Back end: NodeJS with PostgreSQL, which offers reliable data management and quick access to stored documents.
  • AI processing: Integration of AI technologies like ChatGPT for natural language processing, which can interpret complex queries and provide relevant answers.

Our team developed a Rex AI bot that employs this technology stack to help our sales department quickly find the information they need from the internal documents. This bot searches through a catalog of completed projects, published case studies, and sales and marketing materials to provide our sales managers with what they need to win new clients.

For more complex multimedia content management systems, which manage extensive databases of images, videos, or other digital assets:

  • Front end: React.js is used for its efficient handling of dynamic content and interactive features. 
  • Back end: PHP with Laravel offers a strong foundation for complex data operations.
  • Databases: MySQL for structured data storage and Elasticsearch for advanced search capabilities. 
  • Infrastructure: AWS services like EC2, RDS, S3, and OpenSearch, supported by load balancers and CloudFront, provide scalability and robust data handling.

Our projects like Physiotec and MotionElements utilize this stack to manage and swift through thousands of digital assets effectively.

Pro tip 1: For each type of the projects above, Elasticsearch is a go-to technology due to its robust full-text search capabilities and quick data retrieval. It's essential for handling complex queries and large datasets efficiently, making it a cornerstone for enhancing search functionality across various applications.

Pro tip 2: As AI search is getting more and more popular, companies like Algolia offer solutions that are ready for integration. These solutions are tailored to meet the specific needs of different sectors, making it easier for businesses to implement advanced search functionalities that significantly improve user experiences and operational efficiency. We used Algolia for one of our recent projects and find the results quite decent.

Project architecture

This step focuses on building a scalable and reliable framework that meets your search engine's specific needs. It includes organizing how data flows through the system and choosing the right structure—whether a simple single setup or a more flexible multi-part system—to ensure it can grow with your needs.

This involves selecting appropriate data storage solutions like MySQL databases to handle the volume and type of data you expect. The plan also incorporates using APIs for connecting with external data and advanced AI technologies, such as natural language processing, to enhance search capabilities. This careful setup ensures your search engine will run smoothly, manage more data as your site grows, and stay up-to-date with the latest technologies.

Optimization techniques

Optimization is aimed at enhancing speed and accuracy. It focuses on two main areas: improving how quickly your search engine retrieves results and ensuring the results it provides are highly relevant to user queries. To achieve faster search speeds by implementing caching methods that store frequently accessed data for quick retrieval and refining the code for efficiency. This step also involves techniques to analyze and understand the context of user queries better.

Additionally, if your search engine is for a website or an online marketplace, it needs to be optimized for search engine optimization (SEO) practices. This helps ensure that your site ranks higher in search results on popular search engines like Google, attracting more visitors and potential customers.

Testing and quality assurance

Rigorous testing ensures your search engine works well under all conditions. This phase includes a variety of tests to check how the search engine handles large amounts of data, responds under heavy user traffic, and remains stable over time. Security testing is also a key part of this process, helping to protect your search engine from common online threats like hacking or data breaches. By thoroughly testing these areas, we can help make sure your search engine is both effective and secure, providing a trustworthy and smooth experience for your users.

Launch and maintenance

Consider rolling out your search engine in iterations to monitor its performance and gather user feedback. Use this feedback for continuous improvement, adjusting features, and fixing issues as needed. Monitoring tools can help track usage patterns and identify bottlenecks.

Our experience

We’ve been in the field since 2007 and worked on a variety of projects. Here are just a few of them.

Wibbi (formerly Physiotec)

wibbi website  

Wibbi is a platform for physical therapists to manage and distribute over 15,000 video exercises for personalized home exercise programs. It supports therapists in creating, printing, and emailing tailored exercise routines to patients.

We enhanced the backend by redesigning the loader for creating exercises and the matcher for exercise selection, integrating Elasticsearch to improve search efficiency. We also refined the PDF generation for exercise programs, streamlining the process and improving usability for therapists.

Madek

Madek is an AI-driven chatbot developed to support technicians working with power generators. Utilizing a sophisticated mix of Retrieval-Augmented Generation (RAG) and Generative AI from OpenAI's GPT-4, Madek can provide precise, contextually relevant information about various generator models. Our team integrated this technology into a comprehensive database of generator manuals, allowing Madek to quickly retrieve and supply accurate, model-specific guidance. By ensuring that technicians have instant access to essential maintenance information, Madek significantly improves service efficiency and quality. This functionality is supported by a backend built with Laravel and PostgreSQL, and a user-friendly frontend designed with Alpine and TailwindCSS, enhancing the overall user experience.

MotionElements

motionelements website  

MotionElements is a digital marketplace in the stock media industry, serving filmmakers and digital artists with a need for quick and efficient access to a wide range of assets. For this project, we significantly enhanced user experience by transitioning the backend to Laravel and building a search engine using elasticsearch. This upgrade improved search functionality, allowing users to efficiently navigate and access a vast library of stock media, crucial for filmmakers and digital artists seeking quality resources quickly.

KOL Project (pioneer)

KOLComm automates the identification of key opinion leaders (KOLs) in the medical field, using an algorithm that sifts through data from sources like PubMed and ClinicalTrials.gov based on thirty criteria.

We automated the previously manual identification process, incorporating web scraping technologies to optimize search capabilities. This transformation allows for efficient handling of millions of records, providing actionable insights and enhancing KOL engagement strategies.

Welcome Saudi

Welcome Saudi is a travel information aggregator aimed at enhancing the travel experience in Saudi Arabia, focusing on hotels, restaurants, and tourist destinations. Our team has developed this website from scratch. We worked on overcoming data aggregation challenges by implementing APIs like HotelBeds for detailed hotel information and Serp API for accurate, real-time pricing. Our approach tailored the search engine to effectively handle diverse data sources, ensuring a comprehensive and user-friendly platform for travelers exploring Saudi Arabia.

Welcome Saudi website  

Conclusion

Creating a search engine is a complex process. It involves selecting the right type for your needs (based on industry and functionality), incorporating essential features like filtering and great UI design, and using AI to enhance performance and accuracy.

As for the development process, it includes careful planning, technology selection, and rigorous testing to ensure the search engine is efficient and secure. 

Our team has extensive experience in building custom search engines that cater to diverse requirements. If you're looking to improve an existing search engine or develop a new one, we’re here to help. Reach out for a free consultation or to discuss how we can assist you with your project!

Need a custom search engine?

Contact Us




Authors

Inna Lebedeva

Inna Lebedeva is a market researcher and writer at Greenice web development company. She investigates IT niches and writes articles for entrepreneurs who want to launch their business in those niches. Utilizing our experienced Greenice team, and intensive market research, Inna provides in-depth analysis to business owners, enabling them to make informed decisions.

Read More
Olexandr Moklyak

Olexandr is responsible for developing both the back-end and front-end at Greenice. He is well-versed in various technologies, but he particularly enjoys working with Laravel. He is also in charge of several R&D projects experimenting with GPT.

Read More

Rate this article!

You should be logged in to be able to rate articles

5

rating 1 rating 1 rating 1 rating 1 rating 1

Comments (0)

Login to live the comment