เครื่องมือค้นหาจากมหาวิทยาลัยซุนยัตเซ็น
Yat-Search Engine เป็นเครื่องมือค้นหาข้อความที่มีประสิทธิภาพซึ่งรองรับการโหลดไฟล์หลายไฟล์ การสืบค้นที่แม่นยำ การสืบค้นแบบคลุมเครือ และการสืบค้นนิพจน์ทั่วไป โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อมอบโซลูชันการค้นหาข้อความที่รวดเร็วและแม่นยำ พร้อมด้วยฟังก์ชันการจัดเก็บและบันทึกข้อมูลแบบถาวร และรองรับอินเทอร์เฟซภาษาจีน
ควรสังเกตว่าการค้นหาภาษาจีนสามารถทำได้ผ่านตัวเลือก "Fuzzy Search" เท่านั้น และจะต้องมีสัญลักษณ์ "." ที่ส่วนท้าย
โครงการนี้มีวัตถุประสงค์เพื่อการเรียนรู้และการสื่อสารเท่านั้น โปรดอย่าใช้เพื่อวัตถุประสงค์ทางการค้า ผู้เขียนต้นฉบับจะไม่รับผิดชอบต่อผลที่ตามมาใด ๆ ที่เกิดขึ้นจากการใช้โครงการนี้
เวอร์ชันปัจจุบันยังอยู่ระหว่างการพัฒนาและฟีเจอร์บางอย่างอาจยังใช้งานไม่เต็มที่ ยินดีสนับสนุนรหัสและข้อเสนอแนะ!
งานมอบหมายหลักสำหรับหลักสูตร "โครงสร้างข้อมูลและอัลกอริทึม" ของ School of Computer Science, Sun Yat-sen University ในภาคเรียนฤดูใบไม้ร่วงปี 2024
เวอร์ชันปัจจุบัน: v1.4.0
└──Yat-Search-Engine
├── CMakeLists.txt
├── LICENSE
├── dat
│ └── index.dat
├── include
│ ├── RegexSearch.h
│ └── TextSearchEngine.h
├── log
│ └── query_log.txt
├── logo_pic
│ ├── logo.txt
│ └── logo_out.txt
├── readme.md
├── source-text
│ ├── bible.txt
│ ├── text1.txt
│ ├── text2.txt
│ └── otherfile...
└── src
├── RegexSearch.cpp
├── TextSearchEngine.cpp
└── main.cpp
ตารางแฮชประกอบด้วยแบบสอบถาม v1.0.0
CustomHash
และใช้ unordered_map
ใน TextSearchEngine
เพื่อรวมฟังก์ชันแฮชเพื่อเพิ่มประสิทธิภาพการสืบค้นการอ่านไฟล์ v1.0.1
รองรับหลายไฟล์ (เสร็จสมบูรณ์) v1.1.0
main.cpp
เพื่อให้ผู้ใช้สามารถป้อนชื่อไฟล์ได้หลายชื่อ และระบบจะโหลดไฟล์เหล่านี้ทีละไฟล์เพื่อทำดัชนีรองรับนิพจน์ทั่วไป (เสร็จสมบูรณ์) v1.1.1
RegexSearch
ใช้ไลบรารี C++ <regex>
เพื่อใช้ฟังก์ชันคิวรีตามนิพจน์ทั่วไป และเพิ่มตัวเลือกที่เกี่ยวข้องลงในเมนูหลักแบบสอบถามที่แม่นยำ (เสร็จสมบูรณ์) v1.1.2
exactQuery
ค้นหาคำหลักที่ตรงกันทุกประการอย่างมีประสิทธิภาพผ่าน unordered_map
และแสดงผลลัพธ์ที่ตรงกันผลการค้นหาด้วยภาพ เช่น การเลียนแบบวิธีที่คอมไพเลอร์รายงานข้อผิดพลาด (เสร็จสมบูรณ์) v1.2.0
^
เพื่อทำเครื่องหมายตำแหน่งของคำสำคัญในประโยค คล้ายกับการบ่งชี้ข้อผิดพลาดของคอมไพเลอร์ เพื่อเพิ่มความสามารถในการอ่านแบบสอบถามไม่จำกัด ปุ่มออก (เสร็จสมบูรณ์) v1.2.1
ฟังก์ชั่นแฮชใหม่ (เสร็จสมบูรณ์) v1.3.1
CustomHash
ที่มีอยู่ให้เหมาะสมและปรับปรุงประสิทธิภาพของการประมวลผลข้อขัดแย้งของแฮชเพื่อปรับปรุงประสิทธิภาพการสืบค้นเพิ่มเติมรองรับภาษาจีน (เสร็จสมบูรณ์) v1.4.0
การเพิ่มประสิทธิภาพและการประมวลผลล่วงหน้า (เสร็จสมบูรณ์) v1.3.1
ส่วนต่อประสานผู้ใช้ (เสร็จสมบูรณ์) v1.2.2
ที่เก็บข้อมูลถาวร (เสร็จสมบูรณ์) v1.3.0
ฟังก์ชั่นบันทึก บันทึกประวัติการสืบค้น ฯลฯ (เสร็จสมบูรณ์) v1.3.2
query_log.txt
เพื่ออำนวยความสะดวกให้ผู้ใช้สามารถดูประวัติและแก้ไขข้อบกพร่องได้รองรับเอาต์พุตภาษาจีน (เสร็จสมบูรณ์) v1.4.0
วิธีการคอมไพล์เปลี่ยนจาก mingW เป็น cmake (เสร็จสมบูรณ์) v1.4.0
ใส่ทั้งหมดเพื่อเพิ่มไฟล์ทั้งหมด (เสร็จสมบูรณ์) v1.4.0
โปรดตรวจสอบให้แน่ใจว่าได้รันในสภาพแวดล้อม Linux อักขระภาษาจีนที่อ่านไม่ออกอาจเกิดขึ้นในสภาพแวดล้อมของ Windows ป้อนไดเร็กทอรีการทำงานและโคลนโครงการในเครื่อง:
git clone https://github.com/ouyangyipeng/Yat-Search-Engine.git
cd Yat-Search-Engine
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง CMake และคอมไพเลอร์ที่รองรับ C++17 เช่น g++
หรือ clang++
ไฟล์ cmakelists.txt ได้รับการกำหนดค่าด้วยตัวเลือกการคอมไพล์ เพียงดำเนินการคำสั่งต่อไปนี้เพื่อคอมไพล์โปรเจ็กต์ โปรดทราบว่าคอมไพเลอร์เริ่มต้นอยู่ใน /usr/bin/g++
หากคุณต้องการใช้คอมไพเลอร์อื่น โปรดแก้ไขไฟล์ CMakeLists.txt
mkdir build # 假如没有build文件夹
cd build
cmake ..
cmake --build .
./YatSearchEngine
วางไฟล์ข้อความที่คุณต้องการค้นหาลงในโฟลเดอร์ข้อความต้นฉบับ และตรวจสอบให้แน่ใจว่าไฟล์ได้รับการบันทึกในรูปแบบ .txt
เริ่มโปรแกรม: หลังจากรันไฟล์ปฏิบัติการแล้ว โปรแกรมจะแสดงอินเทอร์เฟซต้อนรับและแจ้งให้กด Enter เพื่อดำเนินการต่อ
โหลดไฟล์: ป้อนไฟล์ที่จะโหลดตามคำแนะนำ ป้อนชื่อไฟล์ในแต่ละครั้ง (ต้องลงท้ายด้วย .txt) และป้อนเสร็จสิ้นเพื่อทำการเลือกไฟล์ให้เสร็จสิ้น
เลือกประเภทแบบสอบถาม:
ป้อน 1 เพื่อการค้นหาที่แม่นยำ
ป้อน 2 สำหรับข้อความค้นหาที่ไม่ชัดเจน
ป้อน 3 สำหรับแบบสอบถามนิพจน์ทั่วไป
ป้อน 4 เพื่อออกจากโปรแกรม
ป้อนเนื้อหาข้อความค้นหา: ตามประเภทข้อความค้นหาที่เลือก ให้ป้อนคำสำคัญหรือนิพจน์ทั่วไปที่เกี่ยวข้อง
ดูผลลัพธ์: ผลลัพธ์การค้นหาจะแสดงประโยคที่ตรงกันและเครื่องหมายระบุตำแหน่ง
ออกจากโปรแกรม: เลือกตัวเลือกออก โปรแกรมจะบันทึกดัชนีและบันทึกบันทึกก่อนออก
บันทึกการดำเนินการสืบค้นจะถูกบันทึกไว้ในไฟล์ query_log.txt ผู้ใช้สามารถดูบันทึกการสืบค้นในอดีตและบันทึกการดำเนินการผ่านโปรแกรมแก้ไขข้อความ
ยินดีสนับสนุนรหัสและข้อเสนอแนะ! กรุณาส่งคำขอดึงหรือให้ข้อเสนอแนะของคุณในประเด็น
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT ดูไฟล์ใบอนุญาตสำหรับรายละเอียด