Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membina enjin carian berprestasi tinggi menggunakan php Elasticsearch?

Bagaimana untuk membina enjin carian berprestasi tinggi menggunakan php Elasticsearch?

WBOY
WBOYasal
2023-09-13 08:19:411003semak imbas

如何使用php Elasticsearch构建高性能的搜索引擎?

Bagaimana untuk membina enjin carian berprestasi tinggi menggunakan php Elasticsearch?

Memandangkan jumlah data terus berkembang, membina enjin carian berprestasi tinggi menjadi semakin penting. Elasticsearch ialah enjin carian dan analisis sumber terbuka yang berkuasa tetapi mudah digunakan dan salah satu alat pilihan untuk membina enjin carian berprestasi tinggi. Artikel ini akan memperkenalkan cara menggunakan perpustakaan php Elasticsearch untuk membina enjin carian berprestasi tinggi dan memberikan contoh kod terperinci.

  1. Pasang Elasticsearch

Mula-mula, kita perlu memasang pelayan Elasticsearch. Anda boleh memuat turun dan memasang versi yang sesuai untuk sistem pengendalian anda daripada laman web rasmi Elasticsearch. Selepas pemasangan selesai, mulakan pelayan Elasticsearch.

  1. Pasang perpustakaan php Elasticsearch

Seterusnya, kami perlu memasang perpustakaan php Elasticsearch dalam projek PHP kami. Komposer boleh digunakan untuk mengurus kebergantungan PHP. Cipta fail composer.json dalam direktori akar projek anda dan tambahkan kod berikut padanya:

{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}

Kemudian jalankan arahan composer install untuk memasang perpustakaan php Elasticsearch.

  1. Sambung ke pelayan Elasticsearch

Setelah kami memasang perpustakaan php Elasticsearch, kami boleh menyambung ke pelayan Elasticsearch. Dalam fail PHP anda, gunakan kod berikut untuk mencipta contoh klien Elasticsearch:

<?php

require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$client = ClientBuilder::create()->build();
  1. Mencipta Indeks

Indeks ialah struktur logik yang digunakan dalam Elasticsearch untuk menyimpan dan menyusun data. Kami perlu mencipta indeks baharu dalam Elasticsearch untuk menyimpan data kami. Gunakan kod berikut untuk mencipta indeks bernama "my_index":

$params = [
    'index' => 'my_index'
];

$response = $client->indices()->create($params);
  1. Menambah dokumen

Setelah kami mencipta indeks, kami boleh mula menambah dokumen pada indeks. Dokumen ialah unit storan terkecil dalam Elasticsearch. Tambah dokumen baharu menggunakan kod berikut:

$params = [
    'index' => 'my_index',
    'body' => [
        'title' => 'Example Document',
        'content' => 'This is an example document',
        'tags' => ['example', 'document']
    ]
];

$response = $client->index($params);
  1. Cari

Sekarang kita telah menambah dokumen pada indeks, kita boleh mula mencari. Gunakan kod berikut untuk melakukan pertanyaan carian mudah:

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

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

Ini akan mengembalikan dokumen yang sepadan dengan kriteria carian.

  1. Tambah lebih banyak ciri

Selain fungsi carian asas, Elasticsearch juga menyokong fungsi carian yang lebih maju, seperti pengagregatan, penapis dan pengisihan. Berikut ialah beberapa contoh kod:

  • Lakukan pertanyaan agregat:
$params = [
    'index' => 'my_index',
    'body' => [
        'aggs' => [
            'by_tag' => [
                'terms' => [
                    'field' => 'tags'
                ]
            ]
        ]
    ]
];

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

Ini akan mengembalikan hasil agregat yang dikumpulkan mengikut teg.

  • Tambah penapis:
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    'match' => ['content' => 'example']
                ],
                'filter' => [
                    'range' => [
                        'date' => [
                            'gte' => '2021-01-01'
                        ]
                    ]
                ]
            ]
        ]
    ]
];

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

Ini akan mengembalikan dokumen yang memenuhi kriteria carian dan mempunyai tarikh yang lebih besar daripada atau sama dengan 1 Januari 2021.

  • Tambah pengisihan:
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => ['content' => 'example']
        ],
        'sort' => [
            'date' => 'desc'
        ]
    ]
];

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

Ini akan mengembalikan dokumen yang diisih mengikut tarikh dalam tertib menurun.

Melalui langkah di atas, kami membina enjin carian asas menggunakan perpustakaan php Elasticsearch dan menambah beberapa fungsi carian lanjutan biasa. Anda boleh melanjutkan dan mengoptimumkannya mengikut keperluan anda. Saya harap artikel ini telah memberikan sedikit bantuan untuk anda dalam membangunkan enjin carian berprestasi tinggi.

Atas ialah kandungan terperinci Bagaimana untuk membina enjin carian berprestasi tinggi menggunakan php 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