SpaghetSisearch: un moteur de recherche simultané
Moteur de recherche entièrement fonctionnel construit sur Golang pour satisfaire les exigences HKUST Comp4321.Il est construite en utilisant Golang comme backend et réagit comme frontend.
Démo en direct
http://spaghetti-search.herokuapp.com/
Caractéristiques
- PageRank sensible à la rubrique (TH Haveliwala, 2003) avec l'utilisation de la requête comme seul contexte donné, et l'intérêt de l'utilisateur se reflète également sur chaque sujet.
- Combinaison de modèle de pagerank et de modèle vectoriel pour classer le résultat
- Utilisé le texte d'ancrage et les métatags suggérés sur l'article de Google pour augmenter la précision et indexer beaucoup plus de pages Web
- Utilisez le modèle de concurrence du générateur, de l'avenir et du fan-in à Golang pour augmenter les performances de récupération
- Résumé des documents dynamiques
- Utilisez BadgerDB comme base de données qui a optimisé pour SSD
- Prise en charge de la recherche de la liste des mots clés et de la recherche de phrases (utilisez des citations doubles pour la recherche de phrases)
Configuration et installation
Backend
- Installez Golang à partir d'ici
$ sudo tar -C /usr/local -xzf go $VERSION . $OS - $ARCH .tar.gz
$ export PATH= $PATH :/usr/local/go/bin
- Téléchargez ce dépôt en utilisant
go get
$ go get github.com/nwihardjo/SpaghettiSearch
L'extrémité avant
- Installez le nœud et le npm d'ici
- La construction a été téléchargée. Pas besoin d'installer le nœud pour faire fonctionner cette course.
Dépendances
dep est utilisé comme gestion des packages pour s'assurer que les dépendances installées sont la version correcte du bon fournisseur. Exécutez dep ensure sur la racine du projet pour installer les packages requis, ou exécutez go get ./... à la même chose.
Bâtiment
- Exécutez
make dans le répertoire des racines du projet. Il installera les packages binaires nécessaires à bin/ Directory, ainsi que pour installer des dépendances - Exécutez le Crawler et spécifiez l'argument nécessaire comme ci-dessous, puis tournez le serveur. Le serveur backend et React a été intégré, de sorte qu'un seul serveur de Golang devait être démarré.
$ ./bin/start_crawl [-numPages =< number of pages to be crawled > ] [-startURL =< starting entry point for the crawler to crawl>] [-domainOnly=<whether webpages to be crawled only in the domain of given starting URL)]
$ ./bin/server
- Rendez-vous vers votre navigateur et allez à
localhost:8080 . Le serveur est hébergé sur le port 8080 ou vérifie la sortie de votre terminal.
Donateur
- Nathaniel Wihardjo
- Angelica Kosasih
- Petra Gabriela