Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk membina fungsi carian berbilang kriteria menggunakan Elasticsearch dan PHP

Bagaimana untuk membina fungsi carian berbilang kriteria menggunakan Elasticsearch dan PHP

WBOY
WBOYasal
2023-07-08 09:18:11857semak imbas

Cara menggunakan Elasticsearch dan PHP untuk membina fungsi carian berbilang syarat

Pengenalan:
Elasticsearch ialah enjin carian dan analisis teragih sumber terbuka yang sering digunakan untuk membina fungsi carian yang berkuasa. Ia membolehkan carian pantas dan tepat serta menyokong pelbagai jenis pertanyaan. Artikel ini akan memperkenalkan cara menggunakan Elasticsearch dan PHP untuk membina fungsi carian berbilang syarat dan memberikan contoh kod yang sepadan.

  1. Pasang dan konfigurasikan Elasticsearch:
    Pertama, kita perlu memasang dan mengkonfigurasi Elasticsearch. Anda boleh memuat turun Elasticsearch dari laman web rasmi dan ikut arahan untuk memasangnya. Selepas pemasangan selesai, mulakan Elasticsearch menggunakan antara muka baris arahan.
  2. Pasang dan konfigurasi sambungan PHP Elasticsearch:
    Seterusnya, kita perlu memasang dan mengkonfigurasi sambungan PHP untuk Elasticsearch. Memasang sambungan Elasticsearch PHP adalah mudah menggunakan Komposer. Cipta fail composer.json dalam direktori akar projek anda dan tambahkan kandungan berikut:
{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}

Kemudian jalankan arahan composer install untuk memasang sambungan Elasticsearch PHP.

  1. Sambung ke Elasticsearch:
    Dalam kod PHP, kita perlu mewujudkan sambungan dengan Elasticsearch. Mula-mula, perkenalkan ruang nama sambungan Elasticsearch PHP dan cipta objek klien Elasticsearch:
<?php
require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$hosts = [
    'http://localhost:9200' // Elasticsearch的访问地址
];

$client = ClientBuilder::create()->setHosts($hosts)->build();
?>
  1. Cipta indeks:
    Sebelum melakukan carian berbilang syarat, kita perlu mencipta indeks dan menambah data pada indeks. Jika anda sudah mempunyai indeks sedia ada, anda boleh melangkau langkah ini.

Pertama, tentukan konfigurasi indeks dan pemetaan. Sebagai contoh, kami mencipta indeks yang dipanggil "artikel" dan mentakrifkan jenis "artikel" dan menentukan jenis medan "tajuk" dan "kandungan":

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => ['type' => 'text'],
                'content' => ['type' => 'text']
            ]
        ]
    ]
];

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

Kemudian, tambahkan dokumen pada indeks. Sebagai contoh, mari tambah dokumen bertajuk "Berita":

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'title' => '新闻',
        'content' => '这是一条新闻'
    ]
];

$response = $client->index($params);
?>
  1. Lakukan carian berbilang kriteria:
    Kini, kita boleh melakukan carian berbilang kriteria. Pertama, tentukan pertanyaan yang merangkumi semua kriteria carian. Sebagai contoh, kami ingin mencari dokumen yang tajuknya mengandungi "Berita" dan kandungannya mengandungi "Antarabangsa":
<?php
$params = [
    'index' => 'articles',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    ['match' => ['title' => '新闻']],
                    ['match' => ['content' => '国际']]
                ]
            ]
        ]
    ]
];

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

Akhir sekali, ulangi hasil carian dan cetak tajuk dan kandungan setiap dokumen:

<?php
foreach ($response['hits']['hits'] as $hit) {
    echo '标题:' . $hit['_source']['title'] . '<br>';
    echo '内容:' . $hit['_source']['content'] . '<br>';
    echo '----------------<br>';
}
?>

Kesimpulan:
Dengan langkah di atas, Kami boleh membina fungsi carian berbilang kriteria menggunakan Elasticsearch dan PHP. Mula-mula, pasang dan konfigurasikan Elasticsearch dan sambungan PHP yang sepadan kemudian, sambung ke Elasticsearch dan buat indeks akhirnya, lakukan carian berbilang syarat dan proses hasil carian;

Nota: Untuk memastikan ketepatan dan prestasi carian, adalah disyorkan untuk mengoptimumkan indeks sebelum menggunakan carian berbilang syarat, seperti menyediakan pembahagian perkataan yang sesuai, membina indeks, dsb.

Bahan rujukan:

  • Dokumentasi rasmi Elasticsearch: https://www.elastic.co/guide/index.html
  • Dokumentasi rasmi PHP Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/ client/php-api/current/index.html

Atas ialah kandungan terperinci Bagaimana untuk membina fungsi carian berbilang kriteria menggunakan Elasticsearch dan 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