Mesin Pencari dari Universitas Sun Yat-sen
Yat-Search Engine adalah mesin pencari teks efisien yang mendukung pemuatan banyak file, kueri tepat, kueri fuzzy, dan kueri ekspresi reguler. Proyek ini bertujuan untuk memberikan solusi pencarian teks yang cepat dan akurat, dengan fungsi penyimpanan dan pencatatan yang persisten, dan mendukung antarmuka berbahasa Mandarin.
Perlu dicatat bahwa pencarian dalam bahasa Mandarin hanya dapat diselesaikan melalui opsi "Pencarian Fuzzy", dan harus ada simbol "."
Proyek ini hanya untuk tujuan pembelajaran dan komunikasi, mohon jangan digunakan untuk tujuan komersial. Penulis asli tidak bertanggung jawab atas segala akibat yang timbul dari penggunaan proyek ini.
Versi saat ini masih dalam pengembangan dan beberapa fitur mungkin belum diterapkan sepenuhnya. Kontribusi dan saran kode dipersilakan!
Tugas utama mata kuliah “Struktur Data dan Algoritma” School of Computer Science, Sun Yat-sen University pada semester musim gugur tahun 2024.
Versi saat ini: 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
Tabel hash berisi kueri v1.0.0
CustomHash
, dan menggunakan unordered_map
di TextSearchEngine
untuk menggabungkan fungsi hash guna mengoptimalkan kinerja kueri.Pembacaan file v1.0.1
Dukungan banyak file (selesai) v1.1.0
main.cpp
untuk memungkinkan pengguna memasukkan beberapa nama file, dan sistem akan memuat file-file ini satu per satu untuk pengindeksan.Mendukung ekspresi reguler (selesai) v1.1.1
RegexSearch
, gunakan pustaka C++ <regex>
untuk mengimplementasikan fungsi kueri berdasarkan ekspresi reguler, dan tambahkan opsi terkait ke menu utama.Kueri yang tepat (selesai) v1.1.2
exactQuery
, secara efisien menemukan kata kunci yang cocok tepat melalui unordered_map
, dan menampilkan hasil yang cocok.Visualisasikan hasil pencarian, seperti meniru cara compiler melaporkan kesalahan (selesai) v1.2.0
^
untuk menandai posisi kata kunci dalam kalimat, mirip dengan indikasi kesalahan kompiler, untuk meningkatkan keterbacaan.Kueri tak terbatas, tombol keluar (selesai) v1.2.1
Fungsi hash baru (selesai) v1.3.1
CustomHash
yang ada dan tingkatkan efisiensi pemrosesan konflik hash untuk lebih meningkatkan kinerja kueri.Mendukung bahasa Mandarin (selesai) v1.4.0
Pengoptimalan kinerja dan prapemrosesan (selesai) v1.3.1
Antarmuka pengguna (selesai) v1.2.2
Penyimpanan persisten (selesai) v1.3.0
Fungsi log, rekam riwayat kueri, dll. (Selesai) v1.3.2
query_log.txt
untuk memudahkan pengguna melihat catatan riwayat dan debug.Mendukung keluaran Cina (selesai) v1.4.0
Metode kompilasi diubah dari mingW menjadi cmake (selesai) v1.4.0
Masukkan semua untuk menambahkan semua file (selesai) v1.4.0
Harap pastikan untuk menjalankannya di lingkungan Linux. Karakter Cina yang kacau mungkin terjadi di lingkungan Windows. Masuk ke direktori kerja dan kloning proyek secara lokal:
git clone https://github.com/ouyangyipeng/Yat-Search-Engine.git
cd Yat-Search-Engine
Pastikan Anda telah menginstal CMake dan kompiler berkemampuan C++17, seperti g++
atau clang++
. File cmakelists.txt telah dikonfigurasi dengan opsi kompilasi. Cukup jalankan perintah berikut untuk mengkompilasi proyek. Perhatikan bahwa kompiler default terletak di /usr/bin/g++
. Jika Anda perlu menggunakan kompiler lain, harap modifikasi file CMakeLists.txt.
mkdir build # 假如没有build文件夹
cd build
cmake ..
cmake --build .
./YatSearchEngine
Tempatkan file teks yang ingin Anda cari ke dalam folder teks sumber dan pastikan file disimpan dalam format .txt.
Mulai program: Setelah menjalankan file yang dapat dieksekusi, program akan menampilkan antarmuka selamat datang dan meminta untuk menekan Enter untuk melanjutkan.
Muat file: Masukkan file yang akan dimuat sesuai petunjuk, masukkan nama file setiap kali (harus diakhiri dengan .txt), masukkan selesai untuk menyelesaikan pemilihan file.
Pilih jenis kueri:
Masukkan 1 untuk kueri yang tepat.
Masukkan 2 untuk kueri fuzzy.
Masukkan 3 untuk kueri ekspresi reguler.
Masukkan 4 untuk keluar dari program.
Masukkan konten kueri: Menurut jenis kueri yang dipilih, masukkan kata kunci atau ekspresi reguler yang sesuai.
Lihat hasilnya: Hasil kueri akan menampilkan kalimat yang cocok dan penanda lokasinya.
Keluar dari program: Pilih opsi keluar, program akan menyimpan indeks dan mencatat log sebelum keluar.
Log operasi kueri disimpan dalam file query_log.txt. Pengguna dapat melihat catatan kueri historis dan log operasi melalui editor teks.
Kontribusi dan saran kode dipersilakan! Silakan kirimkan Permintaan Penarikan atau berikan tanggapan Anda pada Masalah.
Proyek ini dilisensikan di bawah lisensi MIT. Lihat file LISENSI untuk detailnya.