AbdelrahmanHamdyy / Flash

⚡ A Crawler-based search engine that demonstrates the main features of a search engine (web crawling, indexing and ranking) and the interaction between them using Java and a Web Interface.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Flash

logo


Table of Contents


Overview

  • The aim of this project is to develop a simple Crawler- based search engine that demonstrates the main features of a search engine and the interaction between them.
  • The main features of a search engine
    • Web Crawling
    • Indexing
    • Ranking

  • Built using Java lnaguage.
  • Web interface for Search Engine using Html & CSS & JS.
  • Built using MongoDB.

Get Started

  1. Clone the repository.
    git clone https://github.com/AbdelrahmanHamdyy/Flash
    
  2. You will need to download Jdk.
  3. You will need to download Tomcat.
  4. You will need to read Search Engine Project to understand the project very well and how the search engine operates.

Search Engine Modules

Module Description
🔷 Web Crawler The web crawler is a software agent that collects documents from the web. The crawler starts with a list of URL addresses (seed set). It downloads the documents identified by these URLs and extracts hyper-links from them. The extracted URLs are added to the list of URLs to be downloaded. Thus, web crawling is a recursive process.
🔶 Indexer The output of web crawling process is a set of downloaded HTML documents. To respond to user queries fast enough, the contents of these documents have to be indexed in a data structure that stores the words contained in each document and their importance (e.g., whether they are in the title, in a header or in plain text).
🔷 Query Processor This module receives search queries, performs necessary preprocessing and searches the index for relevant documents. Retrieve documents containing words that share the same stem with those in the search query. For example, the search query “travel” should match (with lower degree) the words “traveler”, “traveling” … etc.
🔶 Phrase Searching Search engines will generally search for words as phrases when quotation marks are placed around the phrase.
🔷 Ranker

The ranker module sorts documents based on their popularity and relevance to the search query.

  1. Relevance
  2. Relevance is a relation between the query words and the result page and could be calculated in several ways such as tf-idf of the query word in the result page or simply whether the query word appeared in the title, heading, or body. And then you aggregate the scores from all query words to produce the final page relevance score.

  3. Popularity
  4. Popularity is a measure for the importance of any web page regardless the requested query. You can use pagerank algorithm (as explained in the lecture) or other ranking algorithms to calculate each page popularity.

🔶 Voice Recognition Search Using a voice query instead of a typed one.
🔷 Web Interface

We implement a web interface for search engine.

  • This interface receives user queries and displays the resulting pages returned by the engine

  • The result appears with snippets of the text containing queries words. The output looks like google's results page.

Demo


video_0PS1M9TF_Trim.mp4

Contributors


Abdelrahman Hamdy


Abdelrahman Noaman


Adham Ali


Eslam Ashraf

🔒 License

Note: This software is licensed under MIT License, See License for more information ©AbdelrahmanHamdyy.

About

⚡ A Crawler-based search engine that demonstrates the main features of a search engine (web crawling, indexing and ranking) and the interaction between them using Java and a Web Interface.

License:MIT License


Languages

Language:Java 63.7%Language:HTML 15.5%Language:CSS 15.5%Language:JavaScript 5.4%