Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan php Elasticsearch untuk melaksanakan pertanyaan gabungan pelbagai medan?

Bagaimana untuk menggunakan php Elasticsearch untuk melaksanakan pertanyaan gabungan pelbagai medan?

WBOY
WBOYasal
2023-09-13 14:07:511063semak imbas

如何使用php Elasticsearch实现多字段组合查询?

Bagaimana untuk menggunakan php Elasticsearch untuk melaksanakan pertanyaan gabungan berbilang medan?

Pengenalan:
Elasticsearch ialah enjin carian sumber terbuka yang diedarkan berdasarkan Lucene Ia menyediakan keupayaan carian teks penuh yang pantas dan boleh dipercayai serta menyokong penyimpanan, pengambilan dan analisis data berskala besar. Dalam artikel ini, kami akan meneroka cara menggunakan perpustakaan php Elasticsearch untuk melaksanakan pertanyaan gabungan berbilang medan untuk memenuhi pelbagai keperluan carian dengan lebih baik.

1 Pasang dan konfigurasikan Elasticsearch
Untuk menggunakan perpustakaan php Elasticsearch, anda perlu memasang dan mengkonfigurasi Elasticsearch terlebih dahulu. Anda boleh memuat turun dan memasang Elasticsearch di tapak web rasmi dan pastikan ia berjalan.

2. Pasang perpustakaan php Elasticsearch
Anda boleh menggunakan Composer untuk memasang perpustakaan php Elasticsearch. Cipta fail composer.json dalam direktori akar projek dan tambah kandungan berikut:

{
"require": {

"elasticsearch/elasticsearch": "^7.0"

}
}
Kemudian laksanakan arahan berikut dalam baris arahan untuk memasang perpustakaan:
composer install

Tiga , Sambung ke Elasticsearch
Seterusnya, cipta pelanggan untuk menyambung ke Elasticsearch dalam kod php. Tambahkan kod berikut pada permulaan fail:

memerlukan 'vendor/autoload.php';

$client = new ElasticsearchClient(); 4. Cipta indeks

Simpan data untuk dicari dalam indeks. Mari kita anggap di sini bahawa kita ingin menyimpan beberapa maklumat buku. Tambahkan coretan berikut dalam kod php anda:


$params = [

'index' => 'books',
'body' => [
    'mappings' => [
        'properties' => [
            'title' => [
                'type' => 'text'
            ],
            'author' => [
                'type' => 'text'
            ],
            'category' => [
                'type' => 'keyword'
            ]
        ]
    ]
]

];

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

Ini akan mencipta fail dipanggil Indeks "buku" dan tentukan tiga medan: "tajuk", "pengarang" dan "kategori".

5. Tambah dokumen

Tambahkan dokumen untuk dicari pada indeks. Tambahkan coretan kod berikut dalam kod php:


$params = [

'index' => 'books',
'id' => '1',
'body' => [
    'title' => 'The Great Gatsby',
    'author' => 'F. Scott Fitzgerald',
    'category' => 'Fiction'
]

];

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

6. Jalankan pertanyaan gabungan berbilang medan

Sekarang kita sudah bersedia Tiba masanya untuk melaksanakan pertanyaan gabungan berbilang medan. Tambahkan coretan kod berikut dalam kod php:


$params = [

'index' => 'books',
'body' => [
    'query' => [
        'bool' => [
            'must' => [
                ['match' => ['title' => 'great']],
                ['match' => ['author' => 'fitzgerald']]
            ]
        ]
    ]
]

];

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

Dalam kod di atas, kami menggunakan pertanyaan bool untuk Mewakili pertanyaan gabungan berbilang medan. Dalam klausa mesti, kami menggunakan dua klausa padanan untuk memadankan medan "tajuk" dan medan "pengarang". Ini bermakna hanya dokumen yang memenuhi kedua-dua syarat akan diambil.

7. Memproses hasil carian

Hasil carian akan merangkumi semua dokumen yang memenuhi syarat pertanyaan. Tambahkan coretan kod berikut dalam kod php untuk mengendalikan hasil carian:


foreach ($respons['hits']['hits'] as $hit) {

echo $hit['_source']['title'];
echo $hit['_source']['author'];
echo $hit['_source']['category'];
echo "

";

}


8. Summary

In artikel ini, kami membincangkan cara melaksanakan pertanyaan gabungan berbilang medan menggunakan perpustakaan php Elasticsearch Kami membincangkan langkah-langkah untuk memasang dan mengkonfigurasi Elasticsearch, memasang perpustakaan php Elasticsearch, menyambung ke Elasticsearch, mencipta indeks, menambah dokumen dan melaksanakan pelbagai medan. pertanyaan gabungan dengan menggunakan Perpustakaan php Elasticsearch, kami boleh memanipulasi Elasticsearch dengan mudah dan memenuhi pelbagai keperluan carian


Gambaran keseluruhan contoh kod.PNG

Di atas adalah langkah terperinci dan kod contoh tentang cara menggunakan php Elasticsearch untuk melaksanakan pertanyaan gabungan berbilang medan. .semoga bermanfaat untuk anda

Atas ialah kandungan terperinci Bagaimana untuk menggunakan php Elasticsearch untuk melaksanakan pertanyaan gabungan pelbagai medan?. 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