Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk melaksanakan sistem pengesyoran menggunakan Elasticsearch

Bagaimana untuk melaksanakan sistem pengesyoran menggunakan Elasticsearch

王林
Lepaskan: 2023-07-07 19:42:01
asal
1330 orang telah melayarinya

Cara menggunakan Elasticsearch untuk melaksanakan sistem pengesyoran

Dalam era ledakan maklumat hari ini, sistem pengesyoran telah menjadi alat penting untuk membantu pengguna mencari maklumat yang mereka perlukan dengan cepat dan tepat. Sebagai sumber terbuka, enjin carian berprestasi tinggi, Elasticsearch menyediakan carian teks penuh yang berkuasa dan fungsi analisis data, dan boleh menyokong pelaksanaan sistem pengesyoran. Artikel ini akan memperkenalkan cara menggunakan Elasticsearch untuk membina sistem pengesyoran mudah dan memberikan contoh kod.

  1. Penyediaan data

Pertama, kita perlu menyediakan data. Sistem pengesyoran biasanya membuat pengesyoran berdasarkan gelagat sejarah pengguna, jadi kami perlu mengumpulkan data gelagat pengguna, seperti rekod klik, rekod pembelian, dsb. Andaikan bahawa data yang kami kumpulkan mengandungi medan berikut: ID pengguna, ID produk, jenis tingkah laku.

Kita boleh menggunakan model dokumen Elasticsearch untuk menyimpan setiap rekod tingkah laku sebagai dokumen. Berikut ialah struktur contoh dokumen:

{
"user_id": 123,
"item_id": 456,
"action": "click"
}

  1. Penciptaan indeks

Seterusnya Indeks untuk menyimpan data. Dalam Elasticsearch, indeks boleh dianggap sebagai pangkalan data yang digunakan untuk menyimpan dan menyusun data dokumen.

Buat indeks dengan mudah menggunakan API REST Elasticsearch. Berikut ialah contoh kod untuk membuat indeks:

LETAKAN /pengerjaan
{
"pemetaan": {

"properties": {
  "user_id": {
    "type": "integer"
  },
  "item_id": {
    "type": "integer"
  },
  "action": {
    "type": "text"
  }
}
Salin selepas log masuk

}
}

  1. Import data

Kami boleh menggunakan API Elasticsearch dalam jumlah besar import sekali. Berikut ialah contoh kod:

POST /recommendations/_bulk
{ "index": { "_index": "recommendations", "_id": "1" }}
{ "user_id": 123, "item_id": 456 , "action": "click" }
{ "index": { "_index": "recommendations", "_id": "2" }}
{ "user_id": 123, "item_id": 789, "action" : "beli" }
...

Apabila mengimport data, anda boleh menetapkan berat yang berbeza mengikut keperluan perniagaan tertentu. Sebagai contoh, berat yang lebih tinggi boleh ditetapkan untuk rekod pembelian supaya mereka diberi lebih berat dalam proses pengesyoran.

  1. Pertanyaan dan pengesyoran

Dalam sistem pengesyoran, pertanyaan ialah pautan penting. Kami boleh menggunakan fungsi pertanyaan Elasticsearch untuk mendapatkan hasil yang disyorkan berdasarkan gelagat sejarah pengguna.

Mengambil mengesyorkan produk yang berkaitan dengan pengguna 123 sebagai contoh, kami boleh menggunakan API pertanyaan Elasticsearch untuk membuat pengesyoran masa nyata. Berikut ialah contoh kod:

GET /recommendations/_search
{
"query": {

"bool": {
  "must": [
    { "term": { "user_id": 123 } }
  ]
}
Salin selepas log masuk

},
"size": 10
}

Kod di atas akan mengembalikan 10 keputusan pengesyoran teratas yang berkaitan dengan pengguna 123 .

  1. Paparan hasil

Akhir sekali, kami memaparkan hasilnya kepada pengguna. Mengikut keperluan perniagaan tertentu, hasil yang disyorkan boleh dipaparkan menggunakan halaman web, apl, dsb.

Berikut ialah contoh kod untuk memaparkan keputusan yang disyorkan pada halaman web:


<title>推荐结果</title>
Salin selepas log masuk


rrtreee>

rrtree;

Ringkasan

Artikel ini memperkenalkan cara menggunakan Elasticsearch untuk melaksanakan sistem pengesyoran mudah. Dengan mengumpul data sejarah tingkah laku pengguna, mencipta indeks, mengimport data, bertanya dan mengesyorkan serta memaparkan hasil kepada pengguna, kami boleh membina sistem pengesyoran berdasarkan Elasticsearch dengan mudah. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sistem pengesyoran menggunakan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan