Elasticsearch dan Sistem Carian Teks Penuh · Pelajaran

Pertanyaan Istilah dan Padanan

Pelajari cara menggunakan pertanyaan `term` untuk padanan nilai tepat dan pertanyaan `match` untuk analisis teks penuh serta pemarkahan kerelevanan.

Pelajaran 2 daripada 411 langkah

Pertanyaan Istilah dan Padanan ialah pelajaran Elasticsearch dan Sistem Carian Teks Penuh percuma di CoddyKit. Ini ialah pelajaran 2 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.

Pengenalan kepada Pertanyaan Term & Match

Selamat datang ke asas membuat pertanyaan terhadap data dalam Elasticsearch! Hari ini, kita akan meneroka dua jenis pertanyaan penting: term dan match.

Memahami perbezaan antara kedua-duanya amat penting untuk carian yang berkesan. Kita akan mempelajari masa untuk menggunakan setiap satunya bagi mendapatkan hasil yang diperlukan dengan tepat, sama ada nilai tepat atau carian teks penuh yang fleksibel.

Mengindeks Dokumen Contoh

Sebelum membuat pertanyaan, mari indekskan beberapa dokumen mudah ke dalam indeks bernama products. Kita akan menggunakan contoh ini sepanjang pelajaran.

Jalankan perintah curl ini dalam terminal anda (dengan andaian Elasticsearch sedang berjalan pada localhost:9200):

curl -X PUT "localhost:9200/products/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Laptop Pro X1",
  "category": "Electronics",
  "description": "A powerful and lightweight laptop for professionals.",
  "price": 1200
}'

curl -X PUT "localhost:9200/products/_doc/2?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Wireless Mouse",
  "category": "Accessories",
  "description": "Ergonomic wireless mouse with long battery life.",
  "price": 25
}'

curl -X PUT "localhost:9200/products/_doc/3?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Gaming Keyboard",
  "category": "Electronics",
  "description": "Mechanical keyboard for intense gaming sessions.",
  "price": 90
}'

`term` Pertanyaan: Padanan Tepat

Pertanyaan term digunakan untuk mencari nilai tepat dalam medan. Pertanyaan ini mencari padanan tepat tanpa sebarang analisis teks (seperti menukar kepada huruf kecil atau melakukan stemming).

  • Pertanyaan ini sesuai untuk data berstruktur seperti ID produk, kategori, tag atau medan status.
  • Pertanyaan ini berfungsi paling baik dengan medan yang dipetakan sebagai keyword (rentetan yang tidak dianalisis) atau jenis angka.

`term` Pertanyaan Beraksi

Mari cari semua produk dengan kategori tepat "Electronics". Perhatikan bahawa kita membuat pertanyaan terhadap category.keyword kerana medan text lalai akan dianalisis.

Cuba perintah curl ini:

curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "term": {
      "category.keyword": "Electronics"
    }
  }
}'

Memahami .keyword

Apabila anda mengindeks medan rentetan (seperti category), Elasticsearch selalunya mencipta dua versi secara lalai:

  • category: Medan text yang dianalisis (dipecahkan kepada perkataan dan ditukar kepada huruf kecil).
  • category.keyword: Medan keyword yang dianggap sebagai satu rentetan tepat.

Pertanyaan term menjangkakan padanan tepat, jadi penggunaan submedan .keyword memastikan rentetan pertanyaan anda tidak dianalisis dan sepadan dengan nilai yang disimpan dengan tepat.

`match` Pertanyaan: Kuasa Teks Penuh

Pertanyaan match ialah pilihan utama anda untuk carian teks penuh. Tidak seperti term, pertanyaan ini direka untuk mengendalikan teks secara pintar.

  • Pertanyaan ini melakukan analisis teks terhadap pertanyaan carian anda.
  • Pertanyaan ini memecahkan rentetan pertanyaan kepada istilah individu, menukarkannya kepada huruf kecil dan kadangkala melakukan stemming (contohnya, "running" -> "run").
  • Kemudian, pertanyaan ini mencari dokumen yang mengandungi istilah yang telah dianalisis tersebut dan turut memberikan skor kerelevanan.

`match` Pertanyaan Beraksi

Mari cari produk yang mempunyai "powerful laptop" dalam description. Walaupun dokumen mengandungi "A powerful and lightweight laptop", pertanyaan match akan menemuinya.

Cuba perintah curl ini:

curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "description": "powerful laptop"
    }
  }
}'

Keajaiban Analisis Teks

Apabila Anda menggunakan pertanyaan match, proses analisis teks Elasticsearch akan bermula:

  1. Pemecahan token: "powerful laptop" menjadi "powerful" dan "laptop".
  2. Penukaran kepada huruf kecil: "Powerful" menjadi "powerful".
  3. Kata henti: Kata umum seperti "a" dan "the" mungkin dibuang (bergantung pada penganalisis).

Hal ini menjadikan pertanyaan match sangat fleksibel untuk carian bahasa semula jadi, dengan menemukan hasil yang relevan walaupun terdapat sedikit variasi dalam frasa atau huruf besar kecil.

`term` berbanding `match`: Perbezaan Utama

Berikut ialah ringkasan ringkas tentang masa untuk menggunakan setiap jenis pertanyaan:

  • Pertanyaan term:
    - Untuk pemadanan nilai yang tepat.
    - Tidak menjalankan analisis teks pada rentetan pertanyaan.
    - Terbaik untuk medan keyword, ID dan penapis yang tepat.
  • Pertanyaan match:
    - Untuk carian teks penuh.
    - PERFORMS analisis teks pada rentetan pertanyaan.
    - Terbaik untuk medan text, bar carian dan kandungan deskriptif.

Semakan Pemahaman Pertanyaan

Manakah antara pernyataan berikut yang benar tentang pertanyaan term dan match dalam Elasticsearch?

Imbas Kembali: `term` & `match`

Syabas! Anda telah mempelajari perbezaan asas antara pertanyaan term dan match.

  • term digunakan untuk carian nilai yang tepat dan sangat khusus.
  • match digunakan untuk carian teks penuh yang fleksibel, dengan memanfaatkan analisis teks yang berkuasa.

Mengetahui masa untuk menggunakan setiap satunya penting untuk membina pengalaman carian yang berkesan. Seterusnya, kita akan meneroka cara menggabungkan pertanyaan ini dan pertanyaan lain untuk menghasilkan logik carian yang lebih canggih!

Percuma untuk bermula

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 “Pertanyaan Istilah dan Padanan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Elasticsearch dan Sistem Carian Teks Penuh, termasuk “Pertanyaan Istilah dan Padanan”, 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 “Pertanyaan Istilah dan Padanan”?

Pelajari cara menggunakan pertanyaan `term` untuk padanan nilai tepat dan pertanyaan `match` untuk analisis teks penuh serta pemarkahan kerelevanan. 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 2 daripada 4.

Berapa lamakah pelajaran “Pertanyaan Istilah dan Padanan” 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

  1. Pengenalan kepada DSL Pertanyaan
  2. Pertanyaan Istilah dan Padanan
  3. Menggabungkan Pertanyaan dengan Bool
  4. Penapisan, Julat dan Konteks Pertanyaan
← Kembali ke Elasticsearch dan Sistem Carian Teks Penuh