Ini adalah proyek pribadi yang saya buat untuk mempelajari lebih lanjut tentang dua hal: sistem pengambilan informasi, dan kombinasi parser.
Intinya, program ini adalah replikan dengan dua perintah: indeks dan kueri.
Lihat repo, CD ke direktori, jalankan 'stack build'
Stack: https://docs.haskellstack.org/en/stable/readme/
Tumpukan itu luar biasa. Gunakan tumpukan.
Anda memiliki dua opsi.
Jangan panik! Ini berfungsi sebagaimana dimaksud. Ini adalah repl sederhana, jadi program ini menunggu Anda menjalankan perintah. Program ini mendukung dua - indeks dan kueri.
Perintah indeks mengindeks dokumen, dan membuatnya siap untuk pencarian. Perintah tersebut mengambil dua argumen. Yang pertama adalah indeks dokumen, dalam bentuk integer. Yang kedua adalah daftar kata -kata, dipisahkan oleh whitespace.
Beberapa contoh perintah:
Perhatikan bahwa jika Anda menggunakan kembali indeks, dokumen sebelumnya dihapus mendukung yang baru. Jadi, jika Anda menjalankan perintah di atas, dan kemudian cari pizza, Anda tidak akan mendapatkan hasil apa pun.
Kata -kata dalam daftar kata harus terdiri dari huruf. Angka dan simbol tidak valid, dan akan melakukan kesalahan.
Perintah kueri menjalankan pencarian pada dokumen yang sebelumnya telah Anda indeks. Kueri paling sederhana adalah satu kata:
Tetapi mereka bisa menjadi lebih maju dan khusus dengan bergabung dengan ketentuan dengan operator Boolean - | (atau) dan & (dan), seperti itu:
Anda dapat menyatukan kueri ini dengan panjang sewenang -wenang, tetapi saat Anda menambahkan operator, kueri akan membutuhkan waktu lebih lama untuk dijalankan. Ini karena perpustakaan pencarian teks lengkap tidak mendukung kueri boolean, cukup pencarian istilah. Jadi aplikasi ini harus bergabung (baik dengan Union atau dengan persimpangan) daftar indeks yang dihasilkan secara manual.
Perhatikan juga bahwa setiap istilah harus bersarang dalam parens. Berpura -pura Anda dalam varian LISP yang aneh dan Anda akan baik -baik saja.
Cukup masukkan perintah kosong. CTRL-D juga akan bekerja (EOF).