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
Lepaskan: 2023-07-08 09:20:01
asal
835 orang telah melayarinya

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"
    }
}
Salin selepas log masuk

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();
?>
Salin selepas log masuk
  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);
?>
Salin selepas log masuk

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

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

$response = $client->index($params);
?>
Salin selepas log masuk
  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);
?>
Salin selepas log masuk

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>';
}
?>
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan