Spaghettisearch: un motor de búsqueda concurrente
El motor de búsqueda totalmente funcional construido sobre Golang para satisfacer los requisitos de HKUST COMP4321. Se construye utilizando Golang como su backend y reaccionar como su interfaz.
Demostración en vivo
http://spaghetti-search.herokuapp.com/
Características
- Implementado PageRank sensible al tema (Th Haveliwala, 2003) con el uso de la consulta como el único contexto dado, y el interés del usuario se refleja igualmente en cada tema.
- Combinación del modelo de PageRank y Vector-Space para clasificar el resultado
- Texto de anclaje utilizado y metatags sugeridos en el documento de Google para aumentar la precisión e indexar mucho más páginas web
- Utilice el patrón de concurrencia de generador, futuro y ventilador de ventilador en Golang para aumentar el rendimiento de la recuperación
- Recuperación de resumen de documentos dinámicos
- Use BadgerDB como base de datos que optimizó para SSD
- Soporte de búsqueda de lista de palabras clave y búsqueda de frases (use citas dobles para la búsqueda de frases)
Configuración e instalación
Backend
- Instale Golang desde aquí
$ sudo tar -C /usr/local -xzf go $VERSION . $OS - $ARCH .tar.gz
$ export PATH= $PATH :/usr/local/go/bin
- Descargue este repositorio usando
go get
$ go get github.com/nwihardjo/SpaghettiSearch
Interfaz
- Instale el nodo y npm desde aquí
- La construcción ha sido cargada. No es necesario instalar el nodo para ejecutar esto.
Dependencias
dep se usa como gestión de paquetes para garantizar que las dependencias instaladas sean la versión correcta del proveedor correcto. Ejecute dep ensure en el proyecto Root para instalar los paquetes requeridos, o ejecute go get ./... a la misma cosa.
Edificio
- Ejecutar
make en el directorio de Project Root. Instalará los paquetes binarios necesarios en bin/ directorio, así como instalar Dependientes de dependencia - Ejecute el rastreador y especifique el argumento necesario como se muestra a continuación, luego gire el servidor. El servidor Backend y React se ha integrado, por lo que solo se debe iniciar un servidor de Golang.
$ ./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
- Dirígete a tu navegador y ve a
localhost:8080 . El servidor está alojado en el puerto 8080, o verifique la salida de su terminal.
Contribuyente
- Nathaniel Wihardjo
- Angelica Kosasih
- Petra Gabriela