So verwenden Sie Elasticsearch in PHP

不言
Freigeben: 2023-04-02 19:28:01
Original
8952 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Methode zur Verwendung von Elasticsearch in PHP vor. Jetzt kann ich ihn mit Ihnen teilen

Kursempfehlungen→ : "Elasticsearch Full Text Search Practical Combat" (Praktisches Video)

Aus dem Kurs "Ten Million Level Data Concurrency Solution (Theorie + praktischer Kampf)"

Mit Elasticsearch in PHP

composer require elasticsearch/elasticsearch
Nach dem Login kopieren

lädt automatisch die entsprechende Version! Mein PHP ist 5.6, es lädt automatisch die Elasticsearch-Version 5.3!

Using version ^5.3 for elasticsearch/elasticsearch
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
  - Installing react/promise (v2.7.0): Downloading (100%)         
  - Installing guzzlehttp/streams (3.0.0): Downloading (100%)         
  - Installing guzzlehttp/ringphp (1.1.0): Downloading (100%)         
  - Installing elasticsearch/elasticsearch (v5.3.2): Downloading (100%)         
Writing lock file
Generating autoload files
Nach dem Login kopieren

Einfache Verwendung

<?php

class MyElasticSearch
{
    private $es;
    // 构造函数
    public function __construct()
    {
        include(&#39;../vendor/autoload.php&#39;);
        $params = array(
            &#39;127.0.0.1:9200&#39;
        );
        $this->es = \Elasticsearch\ClientBuilder::create()->setHosts($params)->build();
    }

    public function search() {
        $params = [
            &#39;index&#39; => &#39;megacorp&#39;,
            &#39;type&#39; => &#39;employee&#39;,
            &#39;body&#39; => [
                &#39;query&#39; => [
                    &#39;constant_score&#39; => [ //非评分模式执行
                        &#39;filter&#39; => [ //过滤器,不会计算相关度,速度快
                            &#39;term&#39; => [ //精确查找,不支持多个条件
                                &#39;about&#39; => &#39;谭&#39;
                            ]
                        ]

                    ]
                ]
            ]
        ];

        $res = $this->es->search($params);

        print_r($res);
    }
}
Nach dem Login kopieren
<?php
require "./MyElasticSearch.php";

$es = new MyElasticSearch();

$es->search();
Nach dem Login kopieren

Ausführungsergebnisse

Array
(
    [took] => 2
    [timed_out] => 
    [_shards] => Array
        (
            [total] => 5
            [successful] => 5
            [skipped] => 0
            [failed] => 0
        )

    [hits] => Array
        (
            [total] => 1
            [max_score] => 1
            [hits] => Array
                (
                    [0] => Array
                        (
                            [_index] => megacorp
                            [_type] => employee
                            [_id] => 3
                            [_score] => 1
                            [_source] => Array
                                (
                                    [first_name] => 李
                                    [last_name] => 四
                                    [age] => 24
                                    [about] => 一个PHP程序员,热爱编程,谭康很帅,充满激情。
                                    [interests] => Array
                                        (
                                            [0] => 英雄联盟
                                        )

                                )

                        )

                )

        )

)
Nach dem Login kopieren

Hier sind einige offizielle Beispiele:

Initialisierung

require &#39;../vendor/autoload.php&#39;;
use Elasticsearch\ClientBuilder;
$client = ClientBuilder::create()->build();
Nach dem Login kopieren

Konfiguration hinzufügen

$hosts = [
    &#39;127.0.01:9200&#39;,         // IP + Port
];

$client = ClientBuilder::create()           // Instantiate a new ClientBuilder
->setHosts($hosts)      // Set the hosts
->build();              // Build the client object
Nach dem Login kopieren

oder

$hosts = [
    &#39;127.0.01:9200&#39;,         // IP + Port
];

$clientBuilder = ClientBuilder::create();   // Instantiate a new ClientBuilder
$clientBuilder->setHosts($hosts);           // Set the hosts
$client = $clientBuilder->build();          // Build the client object
Nach dem Login kopieren

Ein Dokument einfügen

// Index 一个文档
$params = [
    &#39;index&#39; => &#39;my_index&#39;,
    &#39;type&#39; => &#39;my_type&#39;,
    &#39;id&#39; => &#39;my_id&#39;,
    &#39;body&#39; => [&#39;testField&#39; => &#39;abc&#39;]
];

$response = $client->index($params);
print_r($response);
Nach dem Login kopieren

Ein Dokument abrufen

$params = [
    &#39;index&#39; => &#39;my_index&#39;,
    &#39;type&#39; => &#39;my_type&#39;,
    &#39;id&#39; => &#39;my_id&#39;
];

$response = $client->get($params);
print_r($response);
Nach dem Login kopieren

Ein Dokument abfragen

$params = [
    &#39;index&#39; => &#39;my_index&#39;,
    &#39;type&#39; => &#39;my_type&#39;,
    &#39;body&#39; => [
        &#39;query&#39; => [
            &#39;match&#39; => [
                &#39;testField&#39; => &#39;abc&#39;
            ]
        ]
    ]
];

$response = $client->search($params);
print_r($response);
Nach dem Login kopieren

Ein Dokument löschen

$params = [
    &#39;index&#39; => &#39;my_index&#39;,
    &#39;type&#39; => &#39;my_type&#39;,
    &#39;id&#39; => &#39;my_id&#39;
];

$response = $client->delete($params);
print_r($response);
Nach dem Login kopieren

Die Ergebnisse sind wie folgt

Array
(
    [_index] => my_index
    [_type] => my_type
    [_id] => my_id
    [_version] => 3
    [result] => deleted
    [_shards] => Array
        (
            [total] => 2
            [successful] => 1
            [failed] => 0
        )

    [_seq_no] => 2
    [_primary_term] => 1
)
Nach dem Login kopieren

Index löschen

$deleteParams = [
    &#39;index&#39; => &#39;my_index&#39;
];
$response = $client->indices()->delete($deleteParams);
print_r($response);
Nach dem Login kopieren

Index erstellen

$params = [
    &#39;index&#39; => &#39;my_index&#39;,
    &#39;body&#39; => [
        &#39;settings&#39; => [
            &#39;number_of_shards&#39; => 2,
            &#39;number_of_replicas&#39; => 0
        ]
    ]
];

$response = $client->indices()->create($params);
print_r($response);
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels Für jedermanns Studie. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website!

Verwandte Empfehlungen:

Stapel der PHP-Datenstrukturgrundlage

PHP-Methoden und Parameterkommentare für den Betrieb von Beanstalkd

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Elasticsearch in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!