Carian Frasa dan Kedekatan
Temui cara mencari frasa tepat dan perkataan dalam jarak tertentu menggunakan parameter `match_phrase` dan `slop`.
Carian Frasa dan Kedekatan ialah pelajaran Elasticsearch dan Sistem Carian Teks Penuh percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Elasticsearch dan Sistem Carian Teks Penuh, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Elasticsearch dan Sistem Carian Teks Penuh merangkumi sejumlah 4 pelajaran.
Melangkaui Perkataan Tunggal
Selamat datang! Setakat ini, Anda telah mempelajari cara mencari perkataan secara individu. Tetapi bagaimana jika Anda perlu mencari frasa tepat seperti "quick brown fox" atau perkataan yang muncul berdekatan?
Pelajaran ini memperkenalkan carian frasa dan kedekatan, iaitu teknik berkuasa untuk menjadikan carian Anda lebih tepat dan relevan.
Mencari Frasa Tepat
Kadang-kadang, susunan perkataan penting. Contohnya, "New York" berbeza daripada "York New". Untuk mencari urutan perkataan yang tepat, kita menggunakan pertanyaan frasa.
Dalam Elasticsearch, pertanyaan match_phrase amat sesuai untuk tujuan ini. Pertanyaan ini mencari semua istilah dalam rentetan pertanyaan Anda, mengikut susunan tepat dan bersebelahan.
Contoh match_phrase
Mari lihat match_phrase beraksi. Kita akan mensimulasikan pengindeksan beberapa dokumen, kemudian mencari frasa tepat "quick brown fox".
public class Main {
public static void main(String[] args) {
System.out.println("Simulating search for exact phrase 'quick brown fox'");
System.out.println("on documents:");
System.out.println("- 'The quick brown fox jumps.'");
System.out.println("- 'A fox brown quick jumps.'");
System.out.println("- 'Quick brown fox is fast.'");
System.out.println("
--- Elasticsearch Query (simulated) ---");
System.out.println("{");
System.out.println(" \"query\": {");
System.out.println(" \"match_phrase\": {");
System.out.println(" \"text_field\": \"quick brown fox\"");
System.out.println(" }");
System.out.println(" }");
System.out.println("}");
System.out.println("
--- Search Results (simulated) ---");
System.out.println("Document: 'The quick brown fox jumps.' (MATCH!)");
System.out.println("Document: 'Quick brown fox is fast.' (MATCH!)");
System.out.println("No match for 'A fox brown quick jumps.'");
}
}Logik Pemadanan Frasa
Pertanyaan match_phrase memerlukan tiga syarat:
- Semua istilah hadir: Setiap perkataan dalam frasa Anda ("quick", "brown", "fox") mesti wujud dalam dokumen.
- Susunan tepat: Perkataan mesti muncul dalam urutan yang sama.
- Bersebelahan: Secara lalai, perkataan mesti berada betul-betul bersebelahan.
Jika mana-mana syarat ini tidak dipenuhi, dokumen tidak akan dianggap sepadan.
Carian Kedekatan dengan slop
Bagaimana jika Anda mahu mencari perkataan yang *dekat* antara satu sama lain, tetapi tidak semestinya membentuk frasa tepat dan bersebelahan? Di sinilah carian kedekatan digunakan.
Elasticsearch memperkenalkan parameter slop untuk pertanyaan match_phrase. Parameter ini membenarkan sejumlah "slop" atau "jarak" antara perkataan dalam frasa Anda.
Memahami slop
Parameter slop menentukan bilangan maksimum kedudukan token boleh "dialihkan" untuk memadankan frasa.
slop: 0(lalai) bermaksud perkataan mesti bersebelahan.slop: 1membenarkan satu perkataan dilangkau atau disusun semula sedikit.- Nilai
slopyang lebih tinggi membenarkan lebih banyak fleksibiliti dalam susunan dan jarak perkataan.
Anggaplah ia sebagai bilangan "gerakan" yang diperlukan untuk mengubah perkataan dalam dokumen menjadi frasa sasaran Anda.
Demonstrasi slop=1
Mari ubah suai carian sebelumnya. Kita akan mencari "quick fox" tetapi membenarkan satu perkataan di antaranya menggunakan "slop": 1.
public class Main {
public static void main(String[] args) {
System.out.println("Simulating search for 'quick fox' with slop: 1");
System.out.println("on documents:");
System.out.println("- 'The quick brown fox jumps.'");
System.out.println("- 'A quick sly fox is here.'");
System.out.println("- 'The quick fox is fast.'");
System.out.println("
--- Elasticsearch Query (simulated) ---");
System.out.println("{");
System.out.println(" \"query\": {");
System.out.println(" \"match_phrase\": {");
System.out.println(" \"text_field\": {");
System.out.println(" \"query\": \"quick fox\",");
System.out.println(" \"slop\": 1");
System.out.println(" }");
System.out.println(" }");
System.out.println(" }");
System.out.println("}");
System.out.println("
--- Search Results (simulated) ---");
System.out.println("Document: 'The quick brown fox jumps.' (MATCH!)");
System.out.println("Document: 'A quick sly fox is here.' (MATCH!)");
System.out.println("Document: 'The quick fox is fast.' (MATCH!)");
}
}slop dan Susunan Perkataan
slop juga boleh membantu memadankan frasa yang perkataannya disusun semula sedikit. Contohnya, memadankan "brown quick" apabila mencari "quick brown" dengan slop: 1.
Parameter ini mengukur bilangan minimum gerakan untuk menyusun token dokumen mengikut susunan token dalam pertanyaan. Setiap gerakan dikira sebagai 1 unit slop.
public class Main {
public static void main(String[] args) {
System.out.println("Simulating search for 'quick brown' with slop: 1");
System.out.println("on document:");
System.out.println("- 'The brown quick fox.'"); // 'brown' and 'quick' are swapped
System.out.println("
--- Elasticsearch Query (simulated) ---");
System.out.println("{");
System.out.println(" \"query\": {");
System.out.println(" \"match_phrase\": {");
System.out.println(" \"text_field\": {");
System.out.println(" \"query\": \"quick brown\",");
System.out.println(" \"slop\": 1");
System.out.println(" }");
System.out.println(" }");
System.out.println(" }");
System.out.println("}");
System.out.println("
--- Search Results (simulated) ---");
System.out.println("Document: 'The brown quick fox.' (MATCH!)");
System.out.println("Explanation: To change 'brown quick' to 'quick brown', one move is needed (slop 1).");
}
}match_phrase berbanding match
Penting untuk membezakan pertanyaan match_phrase daripada pertanyaan asas match yang telah Anda lihat sebelum ini.
- Pertanyaan
match: Menemukan dokumen yang mengandungi *mana-mana* perkataan, tanpa mengira susunan atau kedekatan. Ia sesuai untuk kerelevanan umum. - Pertanyaan
match_phrase: Memerlukan *semua* perkataan dalam susunan tepat dan, secara lalai, bersebelahan. Denganslop, pertanyaan ini membenarkan kedekatan terkawal. Ia digunakan untuk ketepatan tinggi.
Pilih match_phrase apabila susunan dan kedekatan perkataan penting untuk carian Anda.
Semakan Kedekatan
Anda mahu mencari dokumen yang mengandungi "apple" dan "pie", dengan paling banyak satu perkataan di antaranya, dalam susunan khusus tersebut.
Imbas Kembali: Carian Tepat
Syabas! Anda telah mempelajari cara meningkatkan ketepatan carian:
match_phrase: Untuk mencari urutan perkataan yang tepat.- Parameter
slop: Untuk mengawal jarak dan penyusunan semula yang dibenarkan antara perkataan dalam frasa.
Teknik ini penting untuk membina pengalaman carian yang sangat tepat dan mudah digunakan. Teruskan berlatih untuk menguasainya!
Pelajari Elasticsearch dan Sistem Carian Teks Penuh dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Carian Frasa dan Kedekatan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Elasticsearch dan Sistem Carian Teks Penuh, termasuk “Carian Frasa dan Kedekatan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Elasticsearch dan Sistem Carian Teks Penuh merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Carian Frasa dan Kedekatan”?
Temui cara mencari frasa tepat dan perkataan dalam jarak tertentu menggunakan parameter `match_phrase` dan `slop`. Anda berlatih Elasticsearch dan Sistem Carian Teks Penuh menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Elasticsearch dan Sistem Carian Teks Penuh?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Elasticsearch dan Sistem Carian Teks Penuh di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Carian Frasa dan Kedekatan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Elasticsearch dan Sistem Carian Teks Penuh ini?
Ya. Setiap pelajaran Elasticsearch dan Sistem Carian Teks Penuh menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Carian Frasa dan Kedekatan
- Pertanyaan Kabur dan Kad Liar
- Menyerlahkan Hasil Carian
- Agregasi untuk Carian Berfaset