Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan pembangunan fungsi carian berkaitan berdasarkan Elasticsearch dalam PHP

Amalan pembangunan fungsi carian berkaitan berdasarkan Elasticsearch dalam PHP

王林
王林asal
2023-10-03 09:07:41798semak imbas

PHP 中基于 Elasticsearch 的相关搜索功能开发实践

Amalan pembangunan fungsi carian berkaitan berdasarkan Elasticsearch dalam PHP

Ikhtisar
Dalam pembangunan web moden, fungsi carian adalah bahagian yang sangat penting. Sebagai enjin carian teragih yang berkuasa dan fleksibel, Elasticsearch digunakan secara meluas dalam pelbagai aplikasi web. Artikel ini akan memperkenalkan cara menggunakan Elasticsearch dalam PHP untuk membangunkan fungsi carian yang berkaitan, dan melampirkan contoh kod tertentu.

Pemasangan dan konfigurasi Elasticsearch
Pertama, kita perlu memasang Elasticsearch dan melaksanakan konfigurasi yang berkaitan. Anda boleh memilih versi yang sesuai untuk sistem pengendalian anda melalui halaman muat turun tapak web rasmi Elasticsearch (https://www.elastic.co/cn/downloads/elasticsearch) dan memasangnya mengikut langkah pemasangan rasmi.

Selepas pemasangan selesai, anda perlu mengubah suai fail konfigurasi Elasticsearch elasticsearch.yml. Buka fail ini, cari dan ubah suai konfigurasi berikut:

cluster.name: my-cluster
node.name: my-node
network.host: 0.0.0.0
http.port: 9200

Menggunakan Elasticsearch PHP Client
Untuk menggunakan Elasticsearch dalam PHP, kami perlu memasang klien Elasticsearch PHP. Ia boleh dipasang melalui Komposer, arahannya adalah seperti berikut:

composer require elasticsearch/elasticsearch

Selepas pemasangan selesai, kita boleh menggunakan kod berikut untuk memulakan klien Elasticsearch dalam PHP:

require 'vendor/autoload.php';

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

Buat indeks dan pemetaan
Sebelum menggunakan Elasticsearch untuk mencari, kita perlu mencipta indeks terlebih dahulu dan pemetaan tetapan. Indeks adalah seperti jadual dalam pangkalan data, dan pemetaan adalah seperti medan dalam jadual. Setiap indeks boleh mempunyai berbilang pemetaan.

Berikut ialah contoh membuat indeks dan pemetaan:

$params = [
    'index' => 'my_index',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => [
                    'type' => 'text',
                ],
                'content' => [
                    'type' => 'text',
                ],
                'created_at' => [
                    'type' => 'date',
                ],
            ],
        ],
    ],
];

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

Menambah dokumen pada indeks
Setelah indeks dibuat, kita boleh menambah data pada indeks supaya ia boleh dicari. Berikut ialah contoh penambahan dokumen pada indeks:

$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'title' => 'Elasticsearch 示例文章',
        'content' => '这是一个关于Elasticsearch的示例文章。',
        'created_at' => '2022-01-01',
    ],
];

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

Cari dokumen
Dengan indeks dan data tersedia, kami boleh melakukan operasi carian. Berikut ialah contoh carian teks penuh ringkas:

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'content' => 'Elasticsearch',
            ],
        ],
    ],
];

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

Kod di atas akan mengembalikan semua dokumen yang mengandungi kata kunci "Elasticsearch" dalam kandungan.

Pengagregatan dan Penapisan
Selain carian teks penuh yang mudah, Elasticsearch juga menyediakan keupayaan pengagregatan dan penapisan yang berkuasa. Berikut ialah contoh:

$params = [
    'index' => 'my_index',
    'body' => [
        'aggs' => [
            'avg_views' => [
                'avg' => [
                    'field' => 'views',
                ],
            ],
        ],
        'query' => [
            'term' => [
                'category' => 'technology',
            ],
        ],
    ],
];

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

Kod di atas akan mengembalikan purata bilangan paparan dalam dokumen yang diklasifikasikan sebagai "teknologi".

Ringkasan
Artikel ini memperkenalkan cara menggunakan Elasticsearch dalam PHP untuk membangunkan fungsi carian yang berkaitan. Kami melalui pemasangan dan konfigurasi Elasticsearch, menggunakan klien Elasticsearch PHP, mencipta indeks dan pemetaan, dan menambah dokumen pada indeks. Selain itu, kami menunjukkan penggunaan carian teks penuh mudah dan keupayaan penapisan agregat. Kod sampel di atas adalah untuk rujukan sahaja dan perlu diselaraskan mengikut keperluan khusus dalam projek sebenar.

Saya harap artikel ini dapat membantu anda memahami dan menggunakan fungsi carian yang berkaitan berdasarkan Elasticsearch dalam PHP.

Atas ialah kandungan terperinci Amalan pembangunan fungsi carian berkaitan berdasarkan Elasticsearch dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn