Distributed Search Engine
git clone repo
to /dse- Download and install XAMPP
- Make a new folder in
xampp/htdocs/
calleddse/
- Open
xampp/htdocs/index.php
, changeheader('Location: '.$uri.'/dashboard/');
toheader('Location: '.$uri.'/dse/');
- Copy over contents of
Frontend/
intoxampp/htdocs/dse/
- Open XAMPP Control Panel and start Apache
- Open your browser and go to
localhost
, it should open the DSE page
git clone repo
to /dse- Open
Backend/CSCI 311 DSE.sln
in Visual Studios (2015 and above). - Build in Release
- Copy over
Deliverables/config.ini
intoBackend/Crawler/bin/Release/
- Edit
Backend/Crawler/bin/Release/config.ini
with desired search path and desired db save location (default save location is same directory as executable)
- Sherizan (Project Lead/Front End)
- Zai Hao (Front End)
- George (Back End)
- Mon (Testing)
- Hui Lim (Documentation)
The frontend consists of two parts: UI and Queries.
- The UI is written using HTML and CSS that uses an open source framework called Bootstrap.
- The search queries are written in SQL and connected to SQLite.
- The connection from SQLite to PHP uses a dependancy manager, Composer (https://getcomposer.org)
- The programming language is written in PHP which is server-side.
The Crawler is written in C# and contains four main parts.
- Goes through all files and folders (and inner folders) in the given directory.
- Creates a new thread to parse the file.
- Goes through the file and decides if the file can be parsed (is text based)
- Seperate words according to whitespace
- Normalize the words, e.g. de-capitalizing, removing punctuation
- Passes on word entries and corresponding file name to Indexer
- Creates
.sqlite
database file - Starts and holds connection to database
- Has a seperate thread to queue and group
INSERT
commands - Formalizes word-file links into SQL statements
- Shows progress of Crawler and Indexer