API - Um mecanismo de pesquisa da Web simples. O objetivo é indexar uma lista infinita de URLs (páginas da web) e, em seguida, poder pesquisar rapidamente URLs relevantes em uma consulta. Este mecanismo usa o banco de dados Elasticsearch.
A operação de indexação de um novo URL First Crawls URL e, em seguida, extrai o título e o conteúdo principal do texto da página. Em seguida, um novo documento que representa os dados do URL é salvo no Elasticsearch e vai para a indexação.
Ao pesquisar URLs relevantes, o mecanismo comparará a consulta com os dados de cada documento (página da web) e recuperará uma lista de URLs que correspondem à consulta, classificados por relevância.
Este mecanismo de pesquisa pode ser usado com uma interface do usuário: https://github.com/anthonysigogne/web-search-engine-ui
Esta API funciona para uma lista finita de idiomas, consulte aqui a lista completa: https://www.elastic.co/guide/en/ellasticsearch/reference/current/analysis-lang-analyzer.html.
Uma demonstração pode ser encontrada aqui: http://searchengine.byprog.com/
Cerca de 500 URLs franceses e 500 URLs ingleses da rede de notícias http://www.france24.com/ foram indexados.
Esta ferramenta requer Python3+ e Elasticsearch5+ .
git clone https://github.com/AnthonySigogne/web-search-engine.git
cd web-search-engine
pip install -r requirements.txt
Em seguida, execute a ferramenta:
FLASK_APP=index.py HOST=<ip> PORT=<port> USERNAME=<username> PASSWORD=<password> flask run
Onde :
port ip +: Rota para Elasticsearchusername + password : credenciais para acessar Para ser executado no modo de depuração, prenda FLASK_DEBUG=1 para o comando:
FLASK_DEBUG=1 ... flask run
Para executar a ferramenta com o Docker, você pode usar minha imagem do 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
Onde :
port ip +: Rota para Elasticsearchusername + password : Credenciais para acessar o ElasticsearchOu construa uma imagem do Docker:
git clone https://github.com/AnthonySigogne/web-search-engine.git
cd web-search-engine
docker build -t web-search-engine .
Para listar todos os serviços da API, digite este terminal no seu navegador da web: http: // localhost: 5000/
Indexem uma página da web através de seu URL.
Url
/índice
Método
POST
Formulário Params de dados
Obrigatório:
url=[string] , o URL para indexar
Resposta de sucesso
SuccessResposta de erro
CHAMADA DE AMOSTRA (com CURL)
curl http://localhost:5000/index --data "language=en&url=https://www.byprog.com/en/"
Consulta Engine para encontrar uma lista de URLs relevantes. Retorne o sublista dos URLs correspondentes classificados pela relevância e pelo total de URLs correspondentes, em JSON.
Url
/procurar
Método
POST
Formulário Params de dados
Obrigatório:
query=[string] , a consulta de pesquisa
Não é necessário:
start=[integer] , o início dos hits (0 por padrão)
hits=[integer] , o número de acertos retornados por consulta (10 por padrão)
highlight=[integer] , Retorne as peças de destaque para cada URL (0 ou 1, 0 por padrão)
Resposta de sucesso
{
"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/"
}
]
}
Resposta de erro
CHAMADA DE AMOSTRA (com CURL)
curl http://localhost:5000/search --data "query=freelance fullstack"
Mit