Python ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pengaturcaraan sebelah pelayan, antaranya rangka kerja Django ialah rangka kerja web yang popular dan mudah digunakan. Dalam pembangunan aplikasi web, carian adalah komponen penting. Carian teks penuh merujuk kepada menggunakan algoritma pemadanan teks untuk mencari teks yang mengandungi rentetan pertanyaan. Untuk melaksanakan carian teks penuh, pembangun perlu memilih komponen enjin carian teks penuh yang sesuai. Dalam Python, django-haystack ialah komponen enjin carian teks penuh popular yang menyediakan keupayaan carian yang berkuasa dan API yang mudah digunakan.
Artikel ini akan memperkenalkan cara menggunakan Django dan django-haystack untuk melaksanakan carian teks penuh. Kami akan menggunakan aplikasi sampel untuk menunjukkan cara mengkonfigurasi django-haystack dan menggunakannya untuk melaksanakan carian teks penuh. Sebelum melakukan ini, anda harus mempunyai sedikit pemahaman tentang cara Django berfungsi dan arahan biasa.
Langkah pertama ialah memasang django-haystack. Anda boleh menggunakan pip untuk memasang django-haystack:
pip install django-haystack
Seterusnya, anda perlu mengkonfigurasi django-haystack dalam fail settings.py Django. Mula-mula, tambahkan haystack pada INSTALLED_APPS:
INSTALLED_APPS = [ ... 'haystack', ... ]
Kemudian, tambahkan yang berikut di bahagian bawah fail settings.py:
HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': os.path.join(BASE_DIR, 'whoosh_index'), }, } HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
Dalam konfigurasi ini, kami menggunakan Whoosh sebagai carian teks penuh kami enjin . Kami juga menyediakan pemproses isyarat masa nyata untuk memastikan hasil carian dikemas kini dalam masa nyata.
Seterusnya, kita perlu mencipta indeks carian. Indeks carian ialah format data berstruktur yang digunakan untuk menyimpan dan mendapatkan semula data teks. Dalam django-haystack, indeks carian boleh digunakan untuk menentukan model data yang akan dicari dan menentukan maklumat seperti medan yang hendak dicari. Untuk menentukan indeks carian, cipta fail baharu yang dipanggil search_indexes.py. Berikut ialah contoh indeks carian:
from haystack import indexes from .models import MyModel class MyModelIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.CharField(document=True, use_template=True) title = indexes.CharField(model_attr='title') content = indexes.CharField(model_attr='content') def get_model(self): return MyModel def index_queryset(self, using=None): return self.get_model().objects.all()
Dalam indeks carian ini, kami mentakrifkan indeks carian yang dipanggil MyModelIndex yang akan mencari model data MyModel kami. Indeks carian mentakrifkan tiga medan: teks, tajuk dan kandungan. Antaranya, medan teks menggunakan templat teks untuk menentukan kandungan yang hendak dicari. Kami menggunakan atribut model_attr untuk menentukan atribut model data untuk dicari dalam dua medan yang tinggal.
Setelah anda menentukan indeks carian anda, terdapat proses permulaan langkah demi langkah untuk memastikan data anda diindeks dengan betul. Untuk melaksanakan proses ini, jalankan dua arahan berikut:
python manage.py makemigrations python manage.py migrate
Akhir sekali, kita perlu menulis kod dalam paparan untuk melaksanakan carian teks penuh. Berikut ialah contoh paparan carian mudah:
from django.shortcuts import render from haystack.query import SearchQuerySet def search(request): query = request.GET.get('q') results = SearchQuerySet().filter(text=query) context = { 'query': query, 'results': results, } return render(request, 'search.html', context)
Dalam paparan ini, kami mendapatkan semula rentetan pertanyaan dalam parameter GET dan menapis hasil yang sepadan dalam indeks carian. Akhir sekali, kami menyerahkan hasil carian kepada templat carian untuk dilihat oleh pengguna.
Dalam templat HTML, anda boleh menggunakan kod berikut untuk memaparkan hasil carian:
{% for result in results %} <h2>{{ result.object.title }}</h2> <p>{{ result.object.content }}</p> {% endfor %}
Kini anda boleh cuba mencari dalam aplikasi sampel. Cuma buka apl dan masukkan rentetan pertanyaan dalam bar carian. Jika anda menghadapi sebarang masalah semasa carian, sila semak fail log dan rujuk dokumentasi django-haystack untuk mendapatkan bantuan.
Ringkasnya, carian teks penuh ialah teknologi yang digunakan secara meluas dan memainkan peranan penting dalam aplikasi Web. Dalam Python, Django dan django-haystack ialah gabungan alat yang berkuasa untuk carian teks penuh. Dengan mengikuti panduan dalam artikel ini, anda boleh melaksanakan carian teks penuh dengan mudah menggunakan django-haystack dan meningkatkan kualiti serta pengalaman penggunaan aplikasi web anda.
Atas ialah kandungan terperinci Pengaturcaraan pelayan Python: carian teks penuh menggunakan django-haystack. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!