API: un motor de búsqueda web simple. El objetivo es indexar una lista infinita de URL (páginas web), y luego poder buscar rápidamente URL relevantes contra una consulta. Este motor utiliza la base de datos Elasticsearch.
La operación de indexación de una nueva URL primero rastrea la URL, luego extrae el título y el contenido de texto principal de la página. Luego, un nuevo documento que representa los datos de la URL se guarda en Elasticsearch y se destina a la indexación.
Al buscar URL relevantes, el motor comparará la consulta con los datos de cada documento (página web) y recuperará una lista de URL que coinciden con la consulta, ordenadas por relevancia.
Este motor de búsqueda se puede usar con una interfaz de usuario: https://github.com/anthonysigogne/web-search-ingine-ui
Esta API funciona para una lista finita de idiomas, consulte aquí para ver la lista completa: https://www.elastic.co/guide/en/elasticsearch/reference/current/analysislang-analyzer.html.
Se puede encontrar una demostración aquí: http://searchengine.byprog.com/
Alrededor de 500 URL francesas y 500 URL en inglés de la red de noticias http://www.france24.com/ han sido indexados.
Esta herramienta requiere Python3+ y Elasticsearch5+ .
git clone https://github.com/AnthonySigogne/web-search-engine.git
cd web-search-engine
pip install -r requirements.txt
Luego, ejecute la herramienta:
FLASK_APP=index.py HOST=<ip> PORT=<port> USERNAME=<username> PASSWORD=<password> flask run
Dónde :
ip + port : Ruta a ElasticSearchusername + password : credenciales para acceder Para ejecutarse en modo de depuración, prepend FLASK_DEBUG=1 al comando:
FLASK_DEBUG=1 ... flask run
Para ejecutar la herramienta con Docker, puede usar mi imagen Dockerhub: https://hub.docker.com/r/anthonysigogne/web-search-engine/
docker run -p 5000:5000
-e "HOST=<ip>"
-e "PORT=<port>"
-e "USERNAME=<username>"
-e "PASSWORD=<password>"
anthonysigogne/web-search-engine
Dónde :
ip + port : Ruta a ElasticSearchusername + password : credenciales para acceder a elasticsearchO construye una imagen de Docker:
git clone https://github.com/AnthonySigogne/web-search-engine.git
cd web-search-engine
docker build -t web-search-engine .
Para enumerar todos los servicios de API, escriba este punto final en su navegador web: http: // localhost: 5000/
Indexe una página web a través de su URL.
Url
/índice
Método
POST
Formar parámetros de datos
Requerido:
url=[string] , la URL para indexar
Respuesta de éxito
SuccessRespuesta de error
Llamada de muestra (con curl)
curl http://localhost:5000/index --data "language=en&url=https://www.byprog.com/en/"
Consulta el motor para encontrar una lista de URL relevantes. Devuelva el sublista de las URL coincidentes ordenadas por relevancia y el total de URL coincidentes, en JSON.
Url
/buscar
Método
POST
Formar parámetros de datos
Requerido:
query=[string] , la consulta de búsqueda
No requerido:
start=[integer] , el inicio de los golpes (0 por defecto)
hits=[integer] , el número de golpes devueltos por consulta (10 por defecto)
highlight=[integer] , devolver las partes resaltadas para cada URL (0 o 1, 0 por defecto)
Respuesta de éxito
{
"total": 1,
"results": [
{
"title": "Anthony Sigogne / Freelance / Full-Stack Developer",
"description": "Full-Stack Developer specialized in new technologies and innovative IT solutions.",
"url": "https://www.byprog.com/en/"
}
]
}
Respuesta de error
Llamada de muestra (con curl)
curl http://localhost:5000/search --data "query=freelance fullstack"
MIT