Cara menggunakan Elasticsearch untuk carian teks penuh pantas
Pengenalan:
Dengan kemunculan era Internet moden, sejumlah besar dokumen dan data digital dijana dan terkumpul pada kadar yang membimbangkan, yang menjadikannya semakin kritikal untuk mendapatkan semula dengan berkesan dan mencari maklumat. Sebagai enjin carian teragih sumber terbuka, Elasticsearch menyediakan keupayaan carian teks penuh yang berkuasa, membolehkan kami mendapatkan semula kandungan yang diperlukan dalam data besar-besaran dengan cepat dan tepat. Artikel ini akan memperkenalkan cara menggunakan Elasticsearch untuk carian teks penuh pantas, dengan contoh kod.
- Konsep asas Elasticsearch
- Memasang dan mengkonfigurasi Elasticsearch
- Mencipta indeks
- Menambah dokumen pada indeks
- Melaksanakan carian teks penuh
- Pengoptimuman prestasi
-
- Konsep asas Elasticsearch
Penuh- carian teks menggunakan Elasticsearch Sebelum ini, kita perlu memahami beberapa konsep asas.
- Indeks: Elasticsearch menggunakan indeks untuk menyusun dan menyimpan dokumen. Setiap indeks adalah serupa dengan jadual data dalam pangkalan data dan mengandungi berbilang dokumen.
- Dokumen: Dokumen ialah unit data asas dalam Elasticsearch. Setiap dokumen terdiri daripada satu set pasangan nilai kunci, dengan kunci ialah nama medan dan nilai ialah nilai medan.
- Jenis: Jenis ialah klasifikasi logik yang digunakan untuk menyusun dokumen dalam indeks. Selepas versi 6.0, konsep jenis dalam Elasticsearch ditamatkan, dan indeks hanya boleh mempunyai satu jenis.
- Pemetaan: Pemetaan mentakrifkan struktur dokumen dan jenis medan dalam indeks. Ia memberitahu Elasticsearch cara menyimpan dan mengindeks data.
- Shards dan Replika: Elasticsearch membahagikan indeks kepada beberapa serpihan untuk penyimpanan dan carian yang diedarkan. Setiap serpihan ialah indeks bebas dan boleh direplikasi pada berbilang nod.
- Pasang dan konfigurasikan Elasticsearch
Mula-mula, kita perlu memuat turun dan memasang versi Elasticsearch yang sesuai daripada laman web rasmi Elasticsearch. Selepas pemasangan selesai, kita perlu melakukan konfigurasi asas.
Dalam fail elasticsearch.yml, kami boleh mengkonfigurasi nama kluster, nama nod, alamat pendengaran, bilangan serpihan, dsb. Kami juga boleh menetapkan peranan yang berbeza untuk nod yang berbeza, seperti nod induk, nod data dan nod klien.
- Buat Indeks
Sebelum pengindeksan, kita perlu menentukan nama dan pemetaan indeks. Nama indeks ialah rentetan yang mengenal pasti indeks secara unik. Pemetaan mentakrifkan struktur indeks.
PUT /index_name
{
"mappings": {
"properties": {
"field1": { "type": "text" },
"field2": { "type": "keyword" },
...
}
}
}
- Tambah dokumen pada indeks
Selepas penciptaan indeks selesai, kita boleh mula menambah dokumen.
POST /index_name/_doc/1
{
"field1": "value1",
"field2": "value2",
...
}
- Lakukan carian teks penuh
Setelah kami mempunyai beberapa dokumen, kami boleh menggunakan Elasticsearch untuk melakukan carian teks penuh. Berikut ialah contoh mudah yang mencari indeks untuk dokumen yang mengandungi kata kunci yang ditentukan.
GET /index_name/_search
{
"query": {
"match": {
"field1": "keyword"
}
}
}
- Petua Carian Terperinci
Apabila menjalankan carian lanjutan, kami boleh menggunakan sintaks dan penapis pertanyaan yang kaya. Berikut ialah beberapa contoh teknik carian lanjutan yang biasa digunakan.
- Carian berbilang medan: Anda boleh menentukan berbilang medan untuk dicari.
GET /index_name/_search
{
"query": {
"multi_match": {
"query": "keyword",
"fields": ["field1", "field2"]
}
}
}
- Carian Frasa: Anda boleh menggunakan pertanyaan padanan_frasa untuk mencari dokumen yang mengandungi frasa tertentu.
GET /index_name/_search
{
"query": {
"match_phrase": {
"field1": "keyword"
}
}
}
- Carian Julat: Anda boleh menggunakan pertanyaan julat untuk mencari nilai dalam julat yang ditentukan.
GET /index_name/_search
{
"query": {
"range": {
"field1": {
"gte": 10,
"lte": 100
}
}
}
}
- Pengoptimuman Prestasi
Untuk meningkatkan prestasi carian, anda boleh mempertimbangkan perkara berikut.
- Tetapan sharding dan replika: Tetapan sharding dan replika yang betul berdasarkan volum data dan beban pertanyaan.
- Pengoptimuman indeks: Gunakan jenis data dan pemetaan medan yang sesuai untuk mengurangkan saiz indeks.
- Pengoptimuman Pertanyaan: Gunakan sintaks pertanyaan dan parameter penomboran yang sesuai untuk mengurangkan masa tindak balas pertanyaan.
Kesimpulan:
Artikel ini menerangkan cara menggunakan Elasticsearch untuk carian teks penuh pantas. Dengan menggunakan ciri berkuasa dan sintaks pertanyaan fleksibel Elasticsearch, kami boleh mencari dengan cepat perkara yang kami perlukan dalam jumlah data yang besar. Saya harap artikel ini akan membantu semua orang untuk belajar dan menggunakan Elasticsearch.
Pautan rujukan:
- Dokumen rasmi Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
Atas ialah kandungan terperinci Cara menggunakan Elasticsearch untuk carian teks penuh pantas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!