Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk melaksanakan carian berbilang keadaan menggunakan PHP dan Elasticsearch

Bagaimana untuk melaksanakan carian berbilang keadaan menggunakan PHP dan Elasticsearch

WBOY
Lepaskan: 2023-07-18 21:14:01
asal
1207 orang telah melayarinya

Cara melaksanakan carian berbilang syarat menggunakan PHP dan Elasticsearch

Pengenalan:
Dalam pembangunan web, fungsi carian adalah bahagian yang amat diperlukan. Untuk memberikan hasil carian yang lebih tepat dan fleksibel, kami biasanya perlu melaksanakan carian berbilang syarat. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk melaksanakan carian berbilang keadaan. Kami akan memperkenalkan konsep asas Elasticsearch dan memberikan contoh kod untuk membantu anda memahami dan mempraktikkan proses ini.

Bahagian Pertama: Gambaran Keseluruhan Elasticsearch
Elasticsearch ialah enjin carian dan analisis teragih sumber terbuka yang boleh menyimpan, mencari dan menganalisis sejumlah besar data dengan pantas. Dengan menggunakan Elasticsearch, kami boleh melaksanakan keupayaan carian yang berkuasa dengan mudah dan memberikan hasil carian berprestasi tinggi.

Bahagian 2: Pengindeksan
Sebelum mencari, kita perlu mengindeks data terlebih dahulu. Indeks ialah koleksi dokumen, setiap satu terdiri daripada satu set medan. Dalam contoh ini, kami akan menggunakan indeks yang dipanggil "produk" untuk menyimpan maklumat produk.

Kod PHP untuk mencipta indeks kelihatan seperti ini:

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

$params = [
    'index' => 'products',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ],
        'mappings' => [
            'properties' => [
                'name' => [
                    'type' => 'text',
                    'analyzer' => 'ik_max_word',
                ],
                'price' => [
                    'type' => 'integer'
                ],
                'category' => [
                    'type' => 'keyword'
                ]
            ]
        ]
    ]
];

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

Dalam kod di atas, kami telah menggunakan perpustakaan klien PHP Elasticsearch. Mula-mula, kami menyediakan contoh pelanggan baharu. Kemudian, kami mentakrifkan tetapan dan maklumat pemetaan untuk indeks dan mencipta indeks dengan memanggil kaedah indeks()->create(). indices()->create()方法来创建索引。

第三部分:添加文档
在建立索引后,我们需要将实际的数据添加到Elasticsearch中。以下是一个添加产品文档的示例代码:

$params = [
    'index' => 'products',
    'body' => [
        'name' => 'iPhone 12',
        'price' => 9999,
        'category' => '手机'
    ]
];

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

在这段代码中,我们指定了索引名称和要添加的文档。我们只需将文档的字段和对应的值传递给index()方法即可。

第四部分:进行多条件搜索
一旦数据成功添加到Elasticsearch中,我们就可以开始进行多条件搜索。以下是一个使用PHP和Elasticsearch进行多条件搜索的示例代码:

$params = [
    'index' => 'products',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    ['match' => ['name' => 'iPhone']],
                    ['range' => ['price' => ['gte' => 5000]]],
                    ['term' => ['category' => '手机']]
                ]
            ]
        ]
    ]
];

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

$results = $response['hits']['hits'];
Salin selepas log masuk

在这个示例代码中,我们首先创建了一个查询结构,通过matchrangeterm来定义了多个查询条件。然后,我们通过search()方法将查询参数传递给Elasticsearch,并获取搜索结果。

最后,我们将搜索结果存储在$results

Bahagian Tiga: Menambah Dokumen

Selepas mengindeks, kita perlu menambah data sebenar pada Elasticsearch. Berikut ialah contoh kod untuk menambah dokumen produk:
rrreee

Dalam kod ini, kami menyatakan nama indeks dan dokumen untuk ditambah. Kami hanya perlu menghantar medan dokumen dan nilai yang sepadan dengan kaedah index(). 🎜🎜Bahagian 4: Lakukan carian berbilang kriteria🎜Setelah data berjaya ditambahkan pada Elasticsearch, kami boleh mula melakukan carian berbilang kriteria. Berikut ialah contoh kod untuk carian berbilang keadaan menggunakan PHP dan Elasticsearch: 🎜rrreee🎜 Dalam kod sampel ini, kami mula-mula mencipta struktur pertanyaan melalui padanan, julat dan istilah untuk menentukan berbilang syarat pertanyaan. Kemudian, kami menghantar parameter pertanyaan kepada Elasticsearch melalui kaedah search() dan mendapatkan hasil carian. 🎜🎜Akhir sekali, kami menyimpan hasil carian dalam tatasusunan $results, yang boleh diproses selanjutnya dan dipaparkan mengikut keperluan. 🎜🎜Kesimpulan: 🎜Dengan menggunakan PHP dan Elasticsearch, kami boleh melaksanakan fungsi carian berbilang syarat untuk menyediakan pengguna hasil carian yang lebih tepat dan fleksibel. Dalam artikel ini, kami memperkenalkan konsep asas Elasticsearch dan menunjukkan melalui contoh kod cara mengindeks, menambah dokumen dan melakukan carian berbilang kriteria. Saya harap artikel ini dapat memberi anda beberapa maklumat dan panduan yang berguna, membolehkan anda memahami dengan lebih baik dan menggunakan teknologi carian berbilang kriteria. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan carian berbilang keadaan menggunakan PHP dan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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