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

Bagaimana untuk melaksanakan sistem pengesyoran menggunakan Elasticsearch

王林
王林asal
2023-07-07 19:37:411333semak imbas

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"
  }
}

}
}

  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 } }
  ]
}

},
"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:

100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e

<title>推荐结果</title>

9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d

rrtreee>

rrtree;
73a6ac4ed44ffec12cee46588e518a5e

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!

Kenyataan:
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