Heim  >  Artikel  >  Backend-Entwicklung  >  Leistungsstarke Datenfilterung und Filtermethoden, implementiert in PHP und Elasticsearch

Leistungsstarke Datenfilterung und Filtermethoden, implementiert in PHP und Elasticsearch

WBOY
WBOYOriginal
2023-07-07 11:05:12868Durchsuche

Hochleistungsfähige Datenfilterung und Filtermethoden, implementiert durch PHP und Elasticsearch

Mit der rasanten Entwicklung des Internets ist das Zeitalter von Big Data angebrochen und die Verarbeitung großer Datenmengen ist für viele Anwendungen zu einer wichtigen Herausforderung geworden. In der Webentwicklung müssen wir häufig große Datenmengen filtern und filtern, um den Benutzeranforderungen gerecht zu werden. Herkömmliche Datenbankabfragen weisen bei der Verarbeitung großer Datenmengen Leistungsprobleme auf, und Elasticsearch hat sich als verteilte Such- und Analysemaschine in Echtzeit zur idealen Wahl für die Verarbeitung großer Datenmengen entwickelt. In diesem Artikel wird erläutert, wie Sie mit PHP und Elasticsearch leistungsstarke Datenfilterung und Filtermethoden implementieren und Codebeispiele anhängen.

1. Installieren Sie Elasticsearch und die PHP-Elasticsearch-Bibliothek.

Bevor wir beginnen, müssen wir Elasticsearch und die PHP-Elasticsearch-Bibliothek installieren. Besuchen Sie zunächst die offizielle Website von Elasticsearch (https://www.elastic.co/products/elasticsearch), um die neueste Version von Elasticsearch herunterzuladen und zu installieren. Als nächstes installieren wir mit Composer die PHP-Elasticsearch-Bibliothek. Sie können den folgenden Befehl im Projektstammverzeichnis ausführen:

composer require elasticsearch/elasticsearch

2. Stellen Sie eine Verbindung zum Elasticsearch-Cluster her

Bevor wir mit dem Filtern und Filtern von Daten beginnen, müssen wir eine Verbindung herstellen zum Elasticsearch-Cluster. Erstellen Sie zunächst eine PHP-Datei mit dem Namen elasticsearch.php und fügen Sie den folgenden Code in die Datei ein: elasticsearch.php,并在文件中添加以下代码:

<?php
require 'vendor/autoload.php';

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

以上代码使用PHP Elasticsearch库提供的ElasticsearchClientBuilder类建立与Elasticsearch集群的连接。我们可以使用$client变量来执行各种操作,如索引、搜索等。

三、创建索引和插入数据

在进行数据过滤和筛选之前,我们首先需要创建一个索引并插入一些测试数据。假设我们要处理的数据是商品列表,每个商品包含名称、价格和库存。以下是创建索引和插入数据的示例代码:

<?php
require 'elasticsearch.php';

$params = [
    'index' => 'products',
    'body' => [
        [
            'name' => 'iPhone X',
            'price' => 999,
            'stock' => 10
        ],
        [
            'name' => 'Samsung Galaxy S10',
            'price' => 899,
            'stock' => 5
        ],
        [
            'name' => 'Google Pixel 3',
            'price' => 799,
            'stock' => 3
        ],
        // 更多商品...
    ]
];

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

以上代码将创建一个名为products的索引,并插入了一些测试数据。每个商品都包含名称、价格和库存三个字段。我们可以根据这些字段来进行数据的过滤和筛选。

四、实现数据的过滤和筛选

假设我们要实现以下几种基本的数据过滤和筛选操作:根据商品价格进行范围查询、根据商品名称进行搜索、根据商品库存进行筛选。以下是对应的代码示例:

  1. 根据商品价格进行范围查询
<?php
require 'elasticsearch.php';

$params = [
    'index' => 'products',
    'body' => [
        'query' => [
            'range' => [
                'price' => [
                    'gte' => 800,
                    'lte' => 1000
                ]
            ]
        ]
    ]
];

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

以上代码将根据price字段进行范围查询,返回价格在800到1000之间的商品列表。

  1. 根据商品名称进行搜索
<?php
require 'elasticsearch.php';

$params = [
    'index' => 'products',
    'body' => [
        'query' => [
            'match' => [
                'name' => 'iPhone'
            ]
        ]
    ]
];

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

以上代码将根据name字段进行搜索,返回名称包含关键词iPhone的商品列表。

  1. 根据商品库存进行筛选
<?php
require 'elasticsearch.php';

$params = [
    'index' => 'products',
    'body' => [
        'query' => [
            'bool' => [
                'filter' => [
                    'term' => [
                        'stock' => 0
                    ]
                ]
            ]
        ]
    ]
];

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

以上代码将根据stock字段进行筛选,返回库存为0的商品列表。

五、处理搜索结果

对于以上每个搜索操作,我们都可以通过$response变量获取搜索结果。以下是如何处理搜索结果的示例代码:

<?php
// ...
$response = $client->search($params);

$hits = $response['hits']['hits'];

foreach ($hits as $hit) {
    $source = $hit['_source'];
    // 处理搜索结果...
}

以上代码将遍历搜索结果的每个命中(hit),并通过$sourcerrreee

Der obige Code verwendet die von PHP Elasticsearch bereitgestellte Klasse ElasticsearchClientBuilder Bibliothek zum Aufbau und Verbindung zum Elasticsearch-Cluster. Wir können die Variable $client verwenden, um verschiedene Vorgänge wie Indizierung, Suche usw. auszuführen.

3. Erstellen Sie einen Index und fügen Sie Daten ein

Bevor wir Daten filtern und filtern, müssen wir zunächst einen Index erstellen und einige Testdaten einfügen. Angenommen, die Daten, die wir verarbeiten möchten, sind eine Liste von Produkten. Jedes Produkt enthält einen Namen, einen Preis und einen Lagerbestand. Hier ist ein Beispielcode zum Erstellen eines Index und zum Einfügen von Daten: 🎜rrreee🎜Der obige Code erstellt einen Index mit dem Namen products und fügt einige Testdaten ein. Jedes Produkt enthält drei Felder: Name, Preis und Lagerbestand. Basierend auf diesen Feldern können wir Daten filtern und filtern. 🎜🎜4. Datenfilterung und -filterung implementieren🎜🎜Angenommen, wir möchten die folgenden grundlegenden Datenfilterungs- und -überprüfungsvorgänge implementieren: Bereichsabfrage basierend auf dem Produktpreis, Suche basierend auf dem Produktnamen und Filter basierend auf dem Produktinventar. Das Folgende ist das entsprechende Codebeispiel: 🎜
  1. Bereichsabfrage basierend auf dem Produktpreis
rrreee🎜Der obige Code führt eine Bereichsabfrage basierend auf dem Feld Preis durch , und der zurückgegebene Preis ist Liste der Artikel zwischen 800 und 1000. 🎜
  1. Suche basierend auf dem Produktnamen
rrreee🎜Der obige Code sucht basierend auf dem Feld name und der zurückgegebene Name enthält die Produktliste des Schlüsselworts iPhone. 🎜
  1. Filter basierend auf dem Produktbestand
rrreee🎜Der obige Code filtert basierend auf dem Feld Lager und gibt eine Liste der Produkte zurück mit 0 Inventar. 🎜🎜5. Suchergebnisse verarbeiten🎜🎜Für jeden der oben genannten Suchvorgänge können wir die Suchergebnisse über die Variable $response erhalten. Hier ist ein Beispielcode für die Verarbeitung von Suchergebnissen: 🎜rrreee🎜Der obige Code durchläuft jeden Treffer der Suchergebnisse und greift über die Variable $source auf die Quelldaten des Treffers zu. Wir können die Suchergebnisse nach unseren eigenen Bedürfnissen verarbeiten, z. B. zur Anzeige auf Webseiten, zur Weiterverarbeitung usw. 🎜🎜6. Zusammenfassung🎜🎜In diesem Artikel wird erläutert, wie Sie mit PHP und Elasticsearch leistungsstarke Datenfilter- und Filtermethoden implementieren. Indem wir eine Verbindung zu Elasticsearch herstellen und die effizienten Such- und Analysefunktionen von Elasticsearch nutzen, können wir große Datenmengen problemlos verarbeiten und schnell die Daten filtern und herausfiltern, die unseren Anforderungen entsprechen. Ich hoffe, dass dieser Artikel für Webentwickler hilfreich sein wird, die mit Big Data umgehen müssen. 🎜

Das obige ist der detaillierte Inhalt vonLeistungsstarke Datenfilterung und Filtermethoden, implementiert in PHP und Elasticsearch. 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