Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie PHP und Elasticsearch, um Suchergebnisse zu empfehlen

So verwenden Sie PHP und Elasticsearch, um Suchergebnisse zu empfehlen

PHPz
PHPzOriginal
2023-07-17 08:32:021542Durchsuche

So verwenden Sie PHP und Elasticsearch, um Suchergebnisse zu empfehlen

Mit der kontinuierlichen Weiterentwicklung der Internettechnologie sind Suchmaschinen zu unserer ersten Wahl für die Informationsbeschaffung geworden. Um ein besseres Benutzererlebnis zu bieten, haben Suchmaschinen Empfehlungssysteme eingeführt, um Benutzern relevantere und personalisiertere Suchergebnisse bereitzustellen. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP und Elasticsearch Empfehlungen für Suchergebnisse implementieren.

  1. Elasticsearch installieren

Zuerst müssen wir Elasticsearch installieren. Sie können die neueste stabile Version von der offiziellen Website von Elasticsearch herunterladen und gemäß der offiziellen Dokumentation installieren.

  1. Index erstellen

In Elasticsearch werden Daten in Form von Indizes gespeichert. Bevor wir einen Index erstellen, müssen wir die Zuordnung des Index definieren. In diesem Artikel verwenden wir den Benutzersuchverlauf als Grundlage für Empfehlungen. Daher müssen wir einen Index erstellen, der den Benutzersuchverlauf enthält. Angenommen, unser Indexname ist „search_history“ und der Dokumenttyp ist „search“, können wir den folgenden Code verwenden, um einen Index zu erstellen:

require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$client = ClientBuilder::create()->build();

$params = [
    'index' => 'search_history',
    'body' => [
        'mappings' => [
            'search' => [
                'properties' => [
                    'user_id' => ['type' => 'integer'],
                    'keyword' => ['type' => 'text']
                ]
            ]
        ]
    ]
];

$response = $client->indices()->create($params);

Dieser Code verwendet die Elasticsearch-PHP-Bibliothek, um mit Elasticsearch zu interagieren. Zuerst erstellen wir ein Elasticsearch-Clientobjekt, definieren dann die Indexzuordnung und verwenden die Methode indices()->create(), um den Index zu erstellen. indices()->create()方法来创建索引。

  1. 存储搜索历史

当用户进行搜索操作时,我们需要将用户的搜索记录存储到Elasticsearch中。以下是一个简单的示例代码:

$params = [
    'index' => 'search_history',
    'type' => 'search',
    'body' => [
        'user_id' => 1,
        'keyword' => 'Elasticsearch'
    ]
];

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

这段代码使用了index()方法将用户搜索历史存储到Elasticsearch中。其中,index参数指定了索引名称,type参数指定了文档类型,body参数则是具体的文档内容。

  1. 获取搜索推荐

在得到用户的搜索历史后,我们可以根据用户的搜索历史来生成搜索推荐。以下是一个简单的示例代码:

$params = [
    'index' => 'search_history',
    'type' => 'search',
    'body' => [
        'query' => [
            'match' => [
                'keyword' => 'Elasticsearch'
            ]
        ],
        'aggs' => [
            'recommended_keywords' => [
                'terms' => [
                    'field' => 'keyword'
                ]
            ]
        ]
    ]
];

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

$recommended_keywords = $response['aggregations']['recommended_keywords']['buckets'];

这段代码使用了search()方法来进行搜索操作,并使用了聚合(aggregation)来获取推荐的关键词。聚合是Elasticsearch中一种常见的分析操作,用于统计、分组和过滤数据。

以上代码中,query参数用于指定搜索条件,这里以"keyword"字段匹配"Elasticsearch"作为示例。而aggs参数则用于定义聚合操作,terms参数指定了按照"keyword"字段进行聚合,并将结果存储在"recommended_keywords"中。最后,我们将推荐的关键词保存在$recommended_keywords

    Suchverlauf speichern
    1. Wenn ein Benutzer einen Suchvorgang ausführt, müssen wir den Suchdatensatz des Benutzers in Elasticsearch speichern. Das Folgende ist ein einfacher Beispielcode:
    foreach ($recommended_keywords as $keyword) {
        echo $keyword['key'] . ' (' . $keyword['doc_count'] . ')';
    }

    Dieser Code verwendet die Methode index(), um den Benutzersuchverlauf in Elasticsearch zu speichern. Unter diesen gibt der Parameter index den Indexnamen an, der Parameter type gibt den Dokumenttyp an und der Parameter body gibt den spezifischen Dokumentinhalt an.

      Suchempfehlungen erhalten

      Nachdem wir den Suchverlauf des Benutzers erhalten haben, können wir Suchempfehlungen basierend auf dem Suchverlauf des Benutzers generieren. Das Folgende ist ein einfacher Beispielcode:

      rrreee

      Dieser Code verwendet die Methode search(), um Suchvorgänge durchzuführen, und verwendet Aggregation, um empfohlene Schlüsselwörter zu erhalten. Aggregation ist eine gängige Analyseoperation in Elasticsearch, die zum Zählen, Gruppieren und Filtern von Daten verwendet wird. 🎜🎜Im obigen Code wird der Parameter query verwendet, um die Suchbedingungen anzugeben. Hier wird das Feld „keyword“ passend zu „Elasticsearch“ als Beispiel verwendet. Der Parameter aggs wird verwendet, um den Aggregationsvorgang zu definieren, und der Parameter terms spezifiziert die Aggregation gemäß dem Feld „keyword“ und speichert das Ergebnis in „recommended_keywords“. Abschließend speichern wir die empfohlenen Schlüsselwörter zur späteren Verwendung in der Variablen $recommended_keywords. 🎜🎜🎜Suchempfehlungen anzeigen🎜🎜🎜Endlich können wir dem Benutzer die empfohlenen Schlüsselwörter anzeigen. Hier ist ein einfacher Beispielcode: 🎜rrreee🎜Dieser Code durchläuft die empfohlenen Schlüsselwörter und zeigt dem Benutzer die Schlüsselwörter und ihre Häufigkeit an. Je nach Bedarf können wir auch Funktionen wie die automatische Vervollständigung von Suchergebnissen und verwandte Suchen basierend auf empfohlenen Schlüsselwörtern bereitstellen. 🎜🎜Fazit🎜🎜In diesem Artikel wird erläutert, wie Sie mit PHP und Elasticsearch Suchergebnisempfehlungen implementieren. Durch die Speicherung des Suchverlaufs der Benutzer und die Verwendung der Aggregationsfunktion von Elasticsearch zur Generierung empfohlener Schlüsselwörter können wir Benutzern ein besseres Sucherlebnis bieten. Das Obige ist natürlich nur ein einfaches Beispiel, und tatsächliche Empfehlungssysteme erfordern möglicherweise komplexere Algorithmen und Strategien, um personalisiertere Empfehlungsergebnisse bereitzustellen. Ich hoffe, dieser Artikel kann Ihnen beim Aufbau von Suchmaschinen und Empfehlungssystemen hilfreich sein. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP und Elasticsearch, um Suchergebnisse zu empfehlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn