Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Panduan Pembangunan Carian PHP dan Manticore: Mengagregatkan Hasil Carian dengan Cadangan

Panduan Pembangunan Carian PHP dan Manticore: Mengagregatkan Hasil Carian dengan Cadangan

WBOY
WBOYasal
2023-08-05 23:10:501516semak imbas

Panduan Pembangunan Carian PHP dan Manticore: Mengagregatkan Hasil Carian dengan Cadangan

Pengenalan:
Dengan pembangunan berterusan teknologi carian, enjin carian moden telah menjadi komponen teras banyak aplikasi web. Dalam pembangunan PHP, kami boleh menggunakan Manticore Search, enjin carian teks penuh sumber terbuka, untuk mencapai fungsi carian yang pantas dan cekap. Artikel ini menerangkan cara untuk membangunkan dengan PHP dan Carian Manticore, dan cara memanfaatkan ciri cadangannya untuk mengagregat hasil carian.

I. Pengenalan kepada Manticore Search
Manticore Search ialah versi ditingkatkan bagi enjin carian teks penuh Sphinx, yang menyediakan prestasi lebih tinggi dan lebih banyak ciri. Ia menyokong ciri seperti pengindeksan teragih, pengindeksan masa nyata, berbilang sintaks pertanyaan dan konfigurasi parameter yang sangat disesuaikan, membolehkan pembangun memenuhi pelbagai keperluan carian secara fleksibel.

II Pasang dan konfigurasikan Manticore Search
Pertama, kita perlu memasang Manticore Search pada pelayan. Adalah disyorkan untuk menggunakan pengurus pakej PHP Komposer untuk memasangnya. Dalam fail composer.json dalam direktori projek, tambahkan kebergantungan berikut:

{
    "require": {
        "bobthecow/manticoresearch": "^2.0"
    }
}

Kemudian laksanakan composer install pada baris arahan untuk memasang Carian Manticore.

Selepas pemasangan selesai, kita perlu mengkonfigurasinya. Cipta fail konfigurasi dalam direktori akar projek dan namakannya manticore.conf. Konfigurasi adalah seperti berikut:

index main
{
    type = plain
    path = /path/to/index
    source = src
}
searchd
{
    listen = localhost:9306:mysql41
    binlog_path = /path/to/binlog
    log = /path/to/log/searchd.log
}

Dalam fail konfigurasi di atas, kami mentakrifkan indeks bernama utama dan daemon carian bernama searchd. Dalam pembangunan sebenar, konfigurasi yang lebih terperinci boleh dilakukan mengikut keperluan.

III Buat indeks dan import data
Pertama, kita perlu buat indeks untuk menyimpan data. Dalam PHP, ini boleh dicapai dengan menggunakan API yang disediakan oleh Manticore Search.

<?php
require 'vendor/autoload.php';

use ManticoresearchClient;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQuery;
use ManticoresearchQueryBuilders;

$client = new Client();
$client->connect(['host' => 'localhost', 'port' => 9306]);

// 创建索引
$client->indexCreate('main');
$index = $client->getIndex('main');

// 创建字段
$index->fieldCreate([
    'name' => 'title',
    'type' => 'text',
    'indexed' => true,
]);

// 导入数据
$data = [
    ['id' => 1, 'title' => 'PHP 开发'],
    ['id' => 2, 'title' => 'Manticore Search'],
    ['id' => 3, 'title' => '全文搜索引擎'],
];

foreach ($data as $item) {
    $index->addDocument($item['id'], ['title' => $item['title']]);
}

// 等待索引刷新
$index->flush();
?>

IV. Laksanakan fungsi cadangan
Manticore Search menyediakan fungsi cadangan, yang boleh memberikan cadangan carian berdasarkan kata kunci yang dimasukkan oleh pengguna. Di bawah ialah contoh mudah yang menunjukkan cara menggunakan ciri cadangan untuk mengagregatkan hasil carian.

<?php
// 获取用户输入的关键字
$keyword = $_GET['keyword'];

// 创建一个布尔查询
$query = new BoolQuery();

// 添加全文搜索子查询
$query->addMust(new QueryMatchPhrasePrefix(['title' => $keyword]));

// 添加建议子查询
$suggestions = new BuildersSuggest(Suggest::RELEVANT_TERMS);
$suggestions->setMatchPhrase('title', $keyword);
$query->setSuggest($suggestions);

// 执行查询
$search = $client->search($query);

// 获取搜索结果
$results = $search->getRawResponse()['hits']['hits'];

// 获取建议结果
$suggest = $search->getSuggest();

// 输出搜索结果
foreach ($results as $result) {
    echo $result['_source']['title'] . "<br>";
}

// 输出建议结果
foreach ($suggest as $term) {
    echo $term['text'] . "<br>";
}
?>

V. Ringkasan
Artikel ini menerangkan cara membangunkan fungsi carian yang cekap menggunakan PHP dan Carian Manticore, dan memanfaatkan keupayaan cadangannya untuk mengagregatkan hasil carian. Dengan menggunakan API dan fungsi Carian Manticore secara rasional, kami boleh membina enjin carian yang berkuasa dengan mudah dan memberikan pengalaman pengguna yang lebih baik. Diharapkan pembaca boleh menggunakan teknologi ini secara fleksibel dalam pembangunan sebenar untuk meningkatkan lagi kualiti dan prestasi fungsi carian.

Atas ialah kandungan terperinci Panduan Pembangunan Carian PHP dan Manticore: Mengagregatkan Hasil Carian dengan Cadangan. 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