Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Elasticsearch dan PHP untuk carian muzik dan cadangan

Cara menggunakan Elasticsearch dan PHP untuk carian muzik dan cadangan

PHPz
PHPzasal
2023-07-12 08:46:36768semak imbas

Cara memanfaatkan Elasticsearch dan PHP untuk carian dan pengesyoran muzik

Ikhtisar
Pada platform penstriman muzik, mencapai carian muzik yang pantas dan tepat serta pengesyoran diperibadikan adalah penting. Elasticsearch ialah enjin carian dan analitik sumber terbuka popular yang berfungsi dengan baik untuk membina sistem sedemikian. Artikel ini akan memperkenalkan cara menggunakan Elasticsearch dan PHP untuk melaksanakan carian muzik dan fungsi pengesyoran, serta menyediakan contoh kod yang berkaitan.

  1. Tetapan Elasticsearch
    Mula-mula, kita perlu memasang Elasticsearch dan membuat beberapa tetapan asas. Berikut ialah beberapa contoh konfigurasi asas:
# 安装Elasticsearch
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{version}.tar.gz
$ tar -xvf elasticsearch-{version}.tar.gz
$ cd elasticsearch-{version}/bin
$ ./elasticsearch

# 创建索引和映射
$ curl -XPUT 'http://localhost:9200/music' -H 'Content-Type: application/json' -d '
{
  "mappings": {
    "properties": {
      "title": { "type": "text" },
      "artist": { "type": "text" },
      "genre": { "type": "keyword" }
    }
  }
}
'
  1. Mengimport Data Muzik
    Seterusnya, kami perlu mengimport data muzik ke dalam Elasticsearch. Kita boleh mencapai ini menggunakan klien PHP Elasticsearch (cth. Elasticsearch-PHP). Berikut ialah contoh coretan kod:
require 'vendor/autoload.php';

$hosts = ['localhost:9200'];
$client = ElasticsearchClientBuilder::create()->setHosts($hosts)->build();

// 导入音乐数据
$music1 = [
  'title' => 'Song 1',
  'artist' => 'Artist 1',
  'genre' => 'Pop'
];

$music2 = [
  'title' => 'Song 2',
  'artist' => 'Artist 2',
  'genre' => 'Rock'
];

$params = [
  'index' => 'music',
  'id' => 1,
  'body' => $music1
];

$response = $client->index($params);

$params = [
  'index' => 'music',
  'id' => 2,
  'body' => $music2
];

$response = $client->index($params);
  1. Fungsi carian muzik
    Seterusnya, kami akan memperkenalkan cara melaksanakan fungsi carian muzik. Kami boleh menggunakan pertanyaan match Elasticsearch untuk melakukan carian teks penuh. Berikut ialah contoh coretan kod: match查询来执行全文搜索。以下是一个示例代码片段:
// 执行搜索
$params = [
  'index' => 'music',
  'body' => [
    'query' => [
      'match' => [
        'title' => 'song'
      ]
    ]
  ]
];

$response = $client->search($params);

// 处理搜索结果
foreach ($response['hits']['hits'] as $hit) {
  $music = $hit['_source'];
  echo 'Title: ' . $music['title'] . ', Artist: ' . $music['artist'] . ', Genre: ' . $music['genre'];
  echo "
";
}
  1. 音乐推荐功能
    最后,我们将介绍如何实现音乐推荐功能。我们可以使用Elasticsearch的more_like_this
  2. // 执行推荐查询
    $params = [
      'index' => 'music',
      'body' => [
        'query' => [
          'more_like_this' => [
            'fields' => ['title', 'artist'],
            'like' => [
              '_index' => 'music',
              '_id' => 1
            ]
          ]
        ]
      ]
    ];
    
    $response = $client->search($params);
    
    // 处理推荐结果
    foreach ($response['hits']['hits'] as $hit) {
      $music = $hit['_source'];
      echo 'Title: ' . $music['title'] . ', Artist: ' . $music['artist'] . ', Genre: ' . $music['genre'];
      echo "
    ";
    }
      Fungsi pengesyoran muzik

      Akhir sekali, kami akan memperkenalkan cara melaksanakan fungsi pengesyoran muzik. Kami boleh menggunakan pertanyaan more_like_this Elasticsearch untuk mencari muzik yang serupa dengan muzik tertentu. Berikut ialah contoh coretan kod:

      rrreee🎜Ringkasan🎜Dengan menggabungkan Elasticsearch dan PHP, kami boleh melaksanakan carian muzik dan fungsi pengesyoran diperibadikan dengan mudah. Dalam artikel ini, kami memperkenalkan cara menyediakan Elasticsearch, mengimport data muzik, melaksanakan fungsi carian muzik dan fungsi pengesyoran muzik dan menyediakan contoh kod yang sepadan. Harap artikel ini membantu anda membina platform penstriman muzik yang lebih baik. 🎜

    Atas ialah kandungan terperinci Cara menggunakan Elasticsearch dan PHP untuk carian muzik dan cadangan. 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