API - เครื่องมือค้นหาเว็บที่เรียบง่าย เป้าหมายคือการจัดทำดัชนีรายการ URL ที่ไม่มีที่สิ้นสุด (หน้าเว็บ) จากนั้นสามารถค้นหา URL ที่เกี่ยวข้องกับการสืบค้นได้อย่างรวดเร็ว เอ็นจิ้นนี้ใช้ฐานข้อมูล Elasticsearch
การดำเนินการจัดทำดัชนีของ URL แรกรวบรวม URL จากนั้นแยกชื่อและเนื้อหาข้อความหลักจากหน้า จากนั้นเอกสารใหม่ที่แสดงถึงข้อมูลของ URL จะถูกบันทึกไว้ใน Elasticsearch และไปทำดัชนี
เมื่อค้นหา URL ที่เกี่ยวข้องเครื่องยนต์จะเปรียบเทียบการสืบค้นกับข้อมูลของแต่ละเอกสาร (หน้าเว็บ) และดึงรายการ URL ที่ตรงกับการสืบค้นเรียงลำดับตามความเกี่ยวข้อง
เครื่องมือค้นหานี้สามารถใช้กับ UI: 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 ของฝรั่งเศสและ 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 ของฉัน: 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หรือสร้างภาพนักเทียบท่าด้วยตัวเอง:
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 ที่เกี่ยวข้อง ส่งคืน sublist ของ 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"
มิกซ์