Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan carian masa nyata berhampiran menggunakan PHP dan Elasticsearch

Bagaimana untuk melaksanakan carian masa nyata berhampiran menggunakan PHP dan Elasticsearch

王林
王林asal
2023-07-18 22:51:27825semak imbas

Cara mencapai carian hampir masa nyata menggunakan PHP dan Elasticsearch

Fungsi carian ialah bahagian penting dalam aplikasi web moden. Apabila berurusan dengan sejumlah besar data dan carian serentak oleh berbilang pengguna, kaedah pertanyaan pangkalan data tradisional tidak lagi dapat memenuhi keperluan. Elasticsearch ialah enjin carian dan analisis teragih sumber terbuka yang boleh memproses data berskala besar dengan cepat dan memberikan prestasi tinggi dan ketersediaan tinggi. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk melaksanakan fungsi carian hampir masa nyata.

  1. Pasang Elasticsearch dan PHP Client

Mula-mula, anda perlu memasang Elasticsearch pada pelayan. Anda boleh memuat turun versi terkini pakej pemasangan dari tapak web rasmi (https://www.elastic.co/downloads/elasticsearch) dan memasang serta mengkonfigurasinya mengikut dokumentasi rasmi.

Kemudian, anda perlu memasang perpustakaan klien Elasticsearch untuk PHP. Anda boleh menggunakan Composer untuk memasang, laksanakan arahan berikut:

composer require elasticsearch/elasticsearch
  1. Sambung ke Elasticsearch

Dalam kod PHP, anda perlu mencipta contoh klien Elasticsearch dan menyambung ke pelayan Elasticsearch. Berikut ialah contoh mudah:

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();
  1. Buat indeks dan pemetaan

Sebelum anda boleh mencari, anda perlu membuat indeks dan pemetaan dahulu. Indeks ialah konsep logik untuk menyimpan data dalam Elasticsearch, serupa dengan jadual dalam pangkalan data tradisional.

Berikut ialah contoh mencipta indeks dan pemetaan:

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

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

Dalam kod di atas, indeks bernama my_index dicipta dan title dan kandungan dicipta Medan mentakrifkan pemetaan. Medan dan jenis pemetaan yang berbeza boleh ditakrifkan mengikut keperluan sebenar. my_index的索引,并为titlecontent字段定义了映射。可以根据实际需求定义不同的字段和映射类型。

  1. 添加文档

在进行搜索之前,需要将数据添加到索引中。下面是一个示例:

$params = [
    'index' => 'my_index',
    'body' => [
        'title' => 'example title',
        'content' => 'example content',
    ],
];

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

以上代码中,将一个包含titlecontent字段的文档添加到索引my_index中。可以根据实际需求添加更多的字段和内容。

  1. 创建搜索查询

最后,可以创建一个搜索查询来执行实际的搜索操作。下面是一个简单的搜索查询示例:

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'title' => 'example',
            ],
        ],
    ],
];

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

foreach ($response['hits']['hits'] as $hit) {
    echo $hit['_source']['title'] . "
";
}

以上代码中,执行了一个根据title字段进行匹配的搜索查询,并输出了搜索结果中的title

    Tambah Dokumen

    🎜Sebelum mencari, data perlu ditambahkan pada indeks. Berikut ialah contoh: 🎜rrreee🎜Dalam kod di atas, dokumen yang mengandungi medan title dan content ditambahkan pada indeks my_index. Lebih banyak medan dan kandungan boleh ditambah mengikut keperluan sebenar. 🎜
      🎜Buat pertanyaan carian🎜🎜🎜Akhir sekali, pertanyaan carian boleh dibuat untuk melaksanakan operasi carian sebenar. Berikut ialah contoh pertanyaan carian mudah: 🎜rrreee🎜Dalam kod di atas, pertanyaan carian dilaksanakan berdasarkan medan title dan title dalam hasil carian dikeluarkan. padang. 🎜🎜Ringkasnya, dengan menggunakan PHP dan Elasticsearch, kami boleh melaksanakan fungsi carian hampir masa nyata dengan mudah. Kami melalui keseluruhan proses bermula daripada memasang dan mengkonfigurasi Elasticsearch, untuk menyambung ke Elasticsearch, mencipta indeks dan pemetaan, menambah dokumen dan melaksanakan operasi carian. Saya harap artikel ini akan membantu dalam melaksanakan keupayaan carian hampir masa nyata menggunakan PHP dan Elasticsearch. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan carian masa nyata berhampiran menggunakan PHP dan Elasticsearch. 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