Heim  >  Artikel  >  Backend-Entwicklung  >  So nutzen Sie PHP und Elasticsearch, um ein humanisiertes Sucherlebnis zu erreichen

So nutzen Sie PHP und Elasticsearch, um ein humanisiertes Sucherlebnis zu erreichen

WBOY
WBOYOriginal
2023-07-18 17:31:461141Durchsuche

So nutzen Sie PHP und Elasticsearch, um ein humanisiertes Sucherlebnis zu erreichen

Einführung:
In der heutigen Zeit der Informationsexplosion sind effiziente Suchfunktionen für Websites und Anwendungen wichtig geworden. Elasticsearch ist eine leistungsstarke Open-Source-Suchmaschine, die schnell, skalierbar und flexibel ist und in verschiedenen Szenarien weit verbreitet ist. PHP ist eine weit verbreitete Entwicklungssprache, die viele Tools und Bibliotheken für die Interaktion mit Elasticsearch bereitstellt, die uns dabei helfen können, ein humanisiertes Sucherlebnis zu erreichen. In diesem Artikel wird erläutert, wie Sie mit PHP und Elasticsearch eine einfache und effiziente Suchfunktion erstellen.

1. Elasticsearch installieren und einrichten
Zuerst müssen wir Elasticsearch auf einem lokalen oder Remote-Server installieren. Spezifische Installationsschritte finden Sie in der offiziellen Elasticsearch-Dokumentation. Nachdem die Installation abgeschlossen ist, müssen wir einen neuen Index erstellen und einige Testdaten hinzufügen.

  1. Erstellen Sie einen neuen Index

    PUT /my_index
  2. Testdaten hinzufügen

    POST /my_index/_doc
    {
      "title": "Elasticsearch入门指南",
      "author": "张三",
      "content": "本文介绍了Elasticsearch的基本概念和使用方法。"
    }
    
    POST /my_index/_doc
    {
      "title": "PHP和Elasticsearch的集成",
      "author": "李四",
      "content": "本文讲解了如何使用PHP和Elasticsearch构建一个简单而高效的搜索功能。"
    }

2. Installieren und konfigurieren Sie die PHP-Entwicklungsumgebung
Bevor wir mit dem Schreiben von PHP-Code beginnen, müssen wir sicherstellen, dass die PHP-Umgebung installiert wurde und korrekt konfiguriert mit den für die Elasticsearch-Interaktion erforderlichen Erweiterungen. „Installieren Sie die Elasticsearch-Client-Bibliothek.“ Erzielen Sie ein humanisiertes Sucherlebnis.

  1. Mit Elasticsearch verbinden

    composer require elasticsearch/elasticsearch
  2. Suchvorgänge durchführen

    require 'vendor/autoload.php';
    use ElasticsearchClientBuilder;

Suchergebnisse verarbeiten

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

  1. 4. Verbessern Sie das Sucherlebnis

  2. Paginierungsfunktion

    Wenn die Suchergebnisse mehrere Seiten enthalten, werden wir kann die Parameter from und size von Elasticsearch verwenden, um die Paging-Funktionalität zu implementieren. Ändern Sie den Suchparametercode wie folgt:

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ]
      ]
    ];
    
    $response = $client->search($params);
  3. Suchschlüsselwörter hervorheben

    Um die Lesbarkeit der Suchergebnisse zu verbessern, können wir die Hervorhebungsfunktion von Elasticsearch verwenden, um Suchschlüsselwörter hervorzuheben. Ändern Sie den Suchparametercode wie folgt:
  4. foreach ($response['hits']['hits'] as $hit) {
     echo $hit['_source']['title'] . ' - ' . $hit['_source']['author'] . "<br>";
     // 输出:Elasticsearch入门指南 - 张三
     // 输出:PHP和Elasticsearch的集成 - 李四
    }

Sortierfunktion
    Wenn die Suchergebnisse nach bestimmten Feldern sortiert werden müssen, können wir dazu den Parameter sort von Elasticsearch verwenden. Ändern Sie den Suchparametercode wie folgt:
  1. $params = [
      'index' => 'my_index',
      'body' => [
     'from' => 0,
     'size' => 10,
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ]
      ]
    ];
    
    $response = $client->search($params);


    fromsize参数来实现分页功能。修改搜索参数代码如下:

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ],
     'highlight' => [
       'fields' => [
         'content' => new stdClass()
       ]
     ]
      ]
    ];
    $response = $client->search($params);
  2. 高亮显示搜索关键字
    为了提高搜索结果的可读性,我们可以使用Elasticsearch的高亮功能来高亮显示搜索关键字。修改搜索参数代码如下:

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ],
     'sort' => [
       'title' => 'asc' // 按标题升序排序
     ]
      ]
    ];
    $response = $client->search($params);
  3. 排序功能
    如果搜索结果需要按照特定的字段进行排序,我们可以使用Elasticsearch的sort 5. Zusammenfassung

    In diesem Artikel wird erläutert, wie Sie PHP und Elasticsearch verwenden, um ein humanisiertes Sucherlebnis zu erzielen. Wir haben Elasticsearch vorbereitet, indem wir Testdaten installiert, eingerichtet und hinzugefügt haben, dann die Suche in PHP codiert und das Sucherlebnis verbessert haben, einschließlich Paging-, Hervorhebungs- und Sortierfunktionen. Ich hoffe, dass dieser Artikel für Entwickler hilfreich ist, die ihre Suchfunktionen verbessern möchten.

Das obige ist der detaillierte Inhalt vonSo nutzen Sie PHP und Elasticsearch, um ein humanisiertes Sucherlebnis zu erreichen. 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