Heim > Artikel > Backend-Entwicklung > So verwenden Sie Elasticsearch und PHP für die Musiksuche und -empfehlungen
So nutzen Sie Elasticsearch und PHP für die Musiksuche und -empfehlung
Übersicht
Auf Musik-Streaming-Plattformen ist eine schnelle und genaue Musiksuche und personalisierte Empfehlungen von entscheidender Bedeutung. Elasticsearch ist eine beliebte Open-Source-Such- und Analyse-Engine, die sich gut für den Aufbau eines solchen Systems eignet. In diesem Artikel wird erläutert, wie Sie mit Elasticsearch und PHP Musiksuch- und Empfehlungsfunktionen implementieren und relevante Codebeispiele bereitstellen.
# 安装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" } } } } '
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);
match
-Abfrage von Elasticsearch verwenden, um eine Volltextsuche durchzuführen. Das Folgende ist ein Beispielcode-Snippet: 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 " "; }
more_like_this
// 执行推荐查询 $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 " "; }
Abschließend stellen wir vor, wie die Musikempfehlungsfunktion implementiert wird. Wir können die more_like_this
-Abfrage von Elasticsearch verwenden, um Musik zu finden, die einer bestimmten Musik ähnelt. Hier ist ein Beispielcode-Snippet:
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Elasticsearch und PHP für die Musiksuche und -empfehlungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!