Bina enjin carian yang cekap menggunakan PHP dan Elasticsearch

WBOY
Lepaskan: 2023-07-09 16:58:01
asal
1183 orang telah melayarinya

Bina enjin carian yang cekap menggunakan PHP dan Elasticsearch

Pengenalan:
Dalam era Internet hari ini, enjin carian adalah pilihan pertama orang ramai untuk mendapatkan maklumat. Untuk memberikan hasil carian yang pantas dan tepat, pembangun perlu membina enjin carian yang cekap. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk membina enjin carian yang cekap, dan memberikan contoh kod yang sepadan.

1. Apakah itu Elasticsearch?
Elasticsearch ialah enjin carian dan analisis sumber terbuka yang diedarkan yang digunakan secara meluas untuk carian teks penuh yang pantas dan tepat. Ia berdasarkan pustaka Lucene dan menyediakan API carian yang kaya dan ciri teragih yang berkuasa.

2 Sediakan persekitaran Elasticsearch
Sebelum mula menggunakan Elasticsearch, kita perlu menyediakan persekitaran Elasticsearch terlebih dahulu. Anda boleh pergi ke laman web rasmi (https://www.elastic.co) untuk memuat turun versi terkini Elasticsearch, dan pasang dan mulakannya mengikut dokumentasi rasmi.

3 Gunakan PHP untuk menyambung ke Elasticsearch
PHP menyediakan banyak perpustakaan untuk berinteraksi dengan Elasticsearch, yang mana yang lebih biasa digunakan ialah elasticsearch-php. Kita boleh memasang perpustakaan elasticsearch-php melalui Komposer:

composer require elasticsearch/elasticsearch
Salin selepas log masuk

Perkenalkan perpustakaan elasticsearch-php ke dalam kod:

require 'vendor/autoload.php';
Salin selepas log masuk

Kemudian buat klien Elasticsearch:

$client = ElasticsearchClientBuilder::create()->build();
Salin selepas log masuk

4. Buat indeks
Sebelum mengindeks data, kita perlu mencipta ia pertama indeks. Indeks boleh difahami sebagai bekas untuk menyimpan data. Kita boleh menggunakan API createIndex untuk mencipta indeks.

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ]
    ]
];

$response = $client->indices()->create($params);
Salin selepas log masuk

5. Tambah dokumen
Seterusnya, kita perlu menambah beberapa dokumen pada indeks. Dokumen boleh difahami sebagai unit data yang disimpan dalam indeks. Kita boleh menggunakan API indeks untuk menambah dokumen.

$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'title' => 'PHP Elasticsearch Tutorial',
        'content' => 'This is a sample document for Elasticsearch tutorial.'
    ]
];

$response = $client->index($params);
Salin selepas log masuk

6. Cari dokumen
Dengan indeks dan dokumen, kita boleh mula mencari. Operasi carian boleh dilakukan menggunakan API carian.

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

$response = $client->search($params);
Salin selepas log masuk

7. Memproses hasil carian
Hasil carian mengembalikan tatasusunan bersekutu, yang daripadanya kami boleh mengekstrak data yang diperlukan.

$hits = $response['hits']['hits'];

foreach ($hits as $hit) {
    echo $hit['_id'].': '.$hit['_source']['title'].PHP_EOL;
    echo $hit['_source']['content'].PHP_EOL;
    echo '------------------------'.PHP_EOL;
}
Salin selepas log masuk

8 Pengisihan dan pengisihan
Dalam aplikasi praktikal, kita mungkin perlu menomborkan dan mengisih hasil carian. Anda boleh menggunakan parameter dari dan saiz untuk menentukan halaman, dan parameter isihan untuk menentukan pengisihan.

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'content' => 'sample document'
            ]
        ],
        'from' => 0,
        'size' => 10,
        'sort' => [
            'title' => 'asc'
        ]
    ]
];

$response = $client->search($params);
Salin selepas log masuk

Kesimpulan:
Artikel ini menerangkan cara membina enjin carian yang cekap menggunakan PHP dan Elasticsearch. Dengan menyambung ke Elasticsearch, mencipta indeks, menambah dokumen dan memproses hasil carian, kami boleh melaksanakan enjin carian berfungsi sepenuhnya dengan mudah. Ciri berkuasa Elasticsearch dan API yang mudah digunakan menjadikannya salah satu enjin carian pilihan untuk pembangun.

Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu semua orang untuk memahami cara menggunakan PHP dan Elasticsearch untuk membina enjin carian yang cekap. Saya doakan anda semua berjaya dalam pembangunan enjin carian anda!

Atas ialah kandungan terperinci Bina enjin carian yang cekap menggunakan PHP dan Elasticsearch. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!