API - простая поисковая система. Цель состоит в том, чтобы индексировать бесконечный список URL -адресов (веб -страниц), а затем иметь возможность быстро искать соответствующие URL -адреса против запроса. Этот двигатель использует базу данных Elasticsearch.
Операция индексации нового URL -URL -URL -URL -адреса, затем извлекает заголовок и основной текстовый содержимое со страницы. Затем новый документ, представляющий данные URL -адреса, сохраняется в Elasticsearch и идет для индексации.
При поиске соответствующих URL -адресов двигатель сравнит запрос с данными каждого документа (веб -страницы) и получает список URL -адресов, соответствующих запросу, отсортированным по релевантности.
Эта поисковая система может использоваться с пользовательским интерфейсом: https://github.com/anthonysigogne/web-search-engine-ui
Этот API работает для конечного списка языков, см. Здесь для полного списка: https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-lang-analyzer.html.
Демо можно найти здесь: http://searchengine.byprog.com/
Около 500 французских URL и 500 английских URL -адресов новостной сети http://www.france24.com/ были проиндексированы.
Этот инструмент требует Python3+ и Elasticsearch5+ .
git clone https://github.com/AnthonySigogne/web-search-engine.git
cd web-search-engine
pip install -r requirements.txt
Затем запустите инструмент:
FLASK_APP=index.py HOST=<ip> PORT=<port> USERNAME=<username> PASSWORD=<password> flask run
Где :
ip + port : маршрут на Elasticsearchusername + password : учетные данные для доступа Чтобы запустить в режиме отладки, подготовить FLASK_DEBUG=1 к команде:
FLASK_DEBUG=1 ... flask run
Чтобы запустить инструмент с Docker, вы можете использовать мой DockerHub Image: 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
Где :
ip + port : маршрут на Elasticsearchusername + password : учетные данные для доступа к ElasticsearchИли создайте себе изображение Docker:
git clone https://github.com/AnthonySigogne/web-search-engine.git
cd web-search-engine
docker build -t web-search-engine .
Чтобы перечислить все услуги API, введите эту конечную точку в своем веб -браузере: http: // localhost: 5000/
Индексировать веб -страницу через его URL.
URL
/Индекс
Метод
POST
Форма данных параметров
Необходимый:
url=[string] , URL -индекс
Ответ успеха
SuccessОтвет ошибки
Пример вызова (с сгибанием)
curl http://localhost:5000/index --data "language=en&url=https://www.byprog.com/en/"
Запросите двигатель, чтобы найти список соответствующих URL -адресов. Верните сублисты соответствующих URL -адресов, отсортированные по актуальности, и общее количество соответствующих URL -адресов, в JSON.
URL
/поиск
Метод
POST
Форма данных параметров
Необходимый:
query=[string] , поисковый запрос
Не обязательно:
start=[integer] , начало хитов (0 по умолчанию)
hits=[integer] , количество ударов, возвращаемых запросом (10 по умолчанию)
highlight=[integer] , верните выделения деталей для каждого URL (0 или 1, 0 по умолчанию)
Ответ успеха
{
"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/"
}
]
}
Ответ ошибки
Пример вызова (с сгибанием)
curl http://localhost:5000/search --data "query=freelance fullstack"
Грань