MySQL - Ekspansi Query Pencarian Full-Text

Halo teman-teman pecinta basis data! Hari ini, kita akan masuk ke dunia yang menarik pencarian Full-Text Ekspansi Query di MySQL. Jangan khawatir jika Anda baru dalam pemrograman – saya akan mengajarkan Anda langkah demi langkah dalam perjalanan ini, seperti yang saya lakukan untuk ribuan murid selama tahun-tahun mengajar saya. Jadi, ambil secangkir kopi (atau teh, jika itu preferensi Anda), dan mari kita mulai petualangan menarik ini bersama!

MySQL - Query Expansion Fulltext Search

Apa Itu Pencarian Full-Text?

Sebelum kita melompat ke Ekspansi Query, mari mulai dari dasar. Bayangkan Anda memiliki perpustakaan besar dengan ribuan buku. Sekarang, Anda ingin menemukan semua buku yang menyebutkan " tongkat sihir ". Itu sebenarnya apa yang dilakukan Pencarian Full-Text di basis data – itu membantu Anda menemukan kata-kata atau frasa tertentu di jumlah besar teks secara cepat dan efisien.

Pencarian Full-Text Ekspansi Query

Sekarang, mari kita tambahkan sedikit magi ke pencarian kita (permintaan yang dikehendaki)! Ekspansi Query seperti memiliki seorang pustakawan super cerdas yang tidak hanya menemukan buku tentang " tongkat sihir " tetapi juga menyarankan buku tentang " ilmu sihir ", " mantra ", dan " enchantments ". Itu menambahkan pencarian Anda untuk mencakup kata-kata terkait, memberikan Anda hasil yang lebih komprehensif.

Bagaimana Ekspansi Query Bekerja

  1. Pertama, itu melakukan pencarian full-text biasa dengan query asli Anda.
  2. Kemudian, itu melihat hasil yang paling relevan dari pencarian itu.
  3. Akhirnya, itu melakukan pencarian kedua, menambahkan kata-kata umum dari hasil teratas ke query asli Anda.

Proses ini sering membantu Anda menemukan dokumen relevan yang mungkin tidak mengandung kata-kata pencarian Anda tepat tetapi masih berkaitan dengan topik Anda.

Mengaktifkan Ekspansi Query

Untuk menggunakan Ekspansi Query di MySQL, kita gunakan klausa WITH QUERY EXPANSION dalam query pencarian kita. Mari lihat contoh:

SELECT * FROM articles
WHERE MATCH (title, body) AGAINST ('tongkat sihir' WITH QUERY EXPANSION);

Dalam query ini:

  • articles adalah nama tabel kita
  • title dan body adalah kolom yang kita cari
  • 'tongkat sihir' adalah kata pencarian kita
  • WITH QUERY EXPANSION memberitahu MySQL untuk menggunakan Ekspansi Query

Kapan untuk Menggunakan Ekspansi Query

Ekspansi Query sangat berguna saat:

  1. Pencarian awal Anda mengembalikan sedikit hasil
  2. Anda ingin menemukan konten terkait
  3. Pengguna mungkin tidak tahu kata-kata tepat untuk mencari

Namun, ingat bahwa kadang-kadang itu bisa mengembalikan hasil yang tak terduga, jadi gunakanlah dengan bijak!

Pencarian Full-Text Ekspansi Query Menggunakan Program Klien

Sekarang, mari kita praktikkan dengan kode nyata! Kita akan membuat program klien sederhana dalam Python untuk berinteraksi dengan basis data MySQL kita dan melakukan pencarian Ekspansi Query.

Pertama, pastikan Anda telah menginstal MySQL Connector for Python:

pip install mysql-connector-python

Sekarang, mari tulis program klien kita:

import mysql.connector

def connect_to_database():
return mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)

def query_expansion_search(cursor, search_term):
query = """
SELECT * FROM articles
WHERE MATCH (title, body) AGAINST (%s WITH QUERY EXPANSION)
"""
cursor.execute(query, (search_term,))
return cursor.fetchall()

def main():
connection = connect_to_database()
cursor = connection.cursor()

search_term = input("Masukkan kata pencarian Anda: ")
results = query_expansion_search(cursor, search_term)

print(f"\nHasil pencarian untuk '{search_term}' dengan Ekspansi Query:")
for result in results:
print(f"Judul: {result[1]}")
print(f"Ukiran: {result[2][:100]}...")
print("---")

cursor.close()
connection.close()

if __name__ == "__main__":
main()

Mari kitauraikan ini:

  1. Kita import MySQL Connector for Python.
  2. Fungsi connect_to_database() mengatur koneksi ke basis data MySQL kita.
  3. query_expansion_search() melakukan pencarian Ekspansi Query menggunakan kata pencarian yang diberikan.
  4. Dalam fungsi main(), kita:
  • Mengatur koneksi ke basis data
  • Meminta pengguna kata pencarian
  • Melakukan pencarian
  • Menampilkan hasil

Untuk menjalankan program ini, simpan sebagai query_expansion_search.py dan jalankan dari baris perintah:

python query_expansion_search.py

Ingat untuk mengganti "your_username", "your_password", dan "your_database" dengan kredensial MySQL dan nama basis data Anda yang sebenarnya.

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dalam dunia Pencarian Full-Text Ekspansi Query di MySQL. Fitur kuat ini dapat meningkatkan kemampuan pencarian aplikasi Anda, membantu pengguna menemukan informasi relevan bahkan saat mereka tidak yakin tentang kata-kata tepat yang harus digunakan.

Saat Anda terus melanjutkan perjalanan Anda dalam pemrograman basis data, ingat bahwa latihan membuat sempurna. Cobalah membuat tabel yang berbeda, memasukkan berbagai jenis data, dan mencoba kata pencarian yang berbeda. Anda akan terkejut melihat bagaimana Ekspansi Query dapat mengungkapkan koneksi yang Anda mungkin belum pernah pikirkan!

Semangat coding, dan may your queries always return the results you're looking for! ??

Metode Deskripsi Sintaks
Pencarian Full-Text Biasa Mencari kesesuaian tepat dari kata-kata yang diberikan MATCH (column1, column2) AGAINST ('kata pencarian')
Pencarian Full-Text Ekspansi Query Menambahkan kata-kata terkait ke pencarian MATCH (column1, column2) AGAINST ('kata pencarian' WITH QUERY EXPANSION)
Pencarian Full-Text Boolean Memungkinkan pencarian yang lebih kompleks menggunakan operator boolean MATCH (column1, column2) AGAINST ('term1 +term2 -term3' IN BOOLEAN MODE)
Pencarian Full-Text Bahasa Alami Mencari kata dalam mode bahasa alami MATCH (column1, column2) AGAINST ('kata pencarian' IN NATURAL LANGUAGE MODE)

Credits: Image by storyset