Membangunkan keupayaan carian berbilang bahasa menggunakan PHP dan Carian Manticore

WBOY
Lepaskan: 2023-08-06 09:14:01
asal
806 orang telah melayarinya

Membangunkan fungsi carian berbilang bahasa menggunakan PHP dan Manticore Search

Dengan perkembangan pesat globalisasi, semakin banyak tapak web dan aplikasi perlu menyokong fungsi carian berbilang bahasa untuk memenuhi keperluan pengguna global. Artikel ini akan memperkenalkan cara menggunakan PHP dan Manticore Search (enjin carian berprestasi tinggi berdasarkan enjin carian sumber terbuka Sphinx) untuk melaksanakan keupayaan carian berbilang bahasa, dengan contoh kod.

  1. Pasang Manticore Search

 Pertama, kita perlu memasang dan mengkonfigurasi Manticore Search pada pelayan. Anda boleh merujuk kepada dokumentasi rasmi Carian Manticore (https://manual.manticoresearch.com/Installation) untuk melengkapkan pemasangan.

  1. Import data

Sebelum membuat carian, kita perlu mengimport data untuk dicari ke dalam Carian Manticore. Katakan kita mempunyai jadual bernama "produk" yang mengandungi maklumat produk, yang mengandungi medan berbilang bahasa, seperti "product_name_en" dan "product_name_cn".

Pertama, kita perlu menyediakan indeks Carian Manticore Anda boleh menggunakan alat baris arahan yang disediakan oleh Manticore Search untuk melengkapkan langkah ini.

$ indexer -c /path/to/manticore.conf --all
Salin selepas log masuk

  Kemudian, kita boleh menggunakan antara muka MySQL yang disediakan oleh Manticore Search untuk mengimport data. Pertama, kita perlu membuat sambungan MySQL.

$mysqli = new mysqli('host', 'user', 'password', 'database');
if ($mysqli->connect_errno) {
    die("Failed to connect to MySQL: " . $mysqli->connect_error);
}
Salin selepas log masuk

Seterusnya, kita boleh menggunakan pernyataan SQL untuk memasukkan data ke dalam Carian Manticore.

$sql = 'SELECT id, product_name_en, product_name_cn FROM products';
$result = $mysqli->query($sql);

$all_rows = '';
while ($row = $result->fetch_assoc()) {
    $all_rows .= '(' . $row['id'] . ', "' . $row['product_name_en'] . '", "' . $row['product_name_cn'] . '"),';
}

$all_rows = rtrim($all_rows, ',');
$sql = 'REPLACE INTO products (id, product_name_en, product_name_cn) VALUES ' . $all_rows;

$mysqli->query($sql);
if ($mysqli->error) {
    die("Failed to insert data into Manticore Search: " . $mysqli->error);
}
Salin selepas log masuk

 Melalui kod di atas, kami berjaya mengimport data ke dalam Carian Manticore.

  1. Carian berbilang bahasa

Seterusnya, kita perlu menulis kod PHP yang boleh menyokong carian berbilang bahasa.

$query = 'apple';

// 根据当前语言选择搜索字段
$language = 'en';
if ($language === 'cn') {
    $search_field = 'product_name_cn';
} else {
    $search_field = 'product_name_en';
}

// 连接Manticore Search的搜索接口
$cl = new ManticoreSearchClient();
$cl->connect();

// 执行搜索
$result = $cl->search('products', $query, array('index' => 'products', 'field_weights' => array($search_field => 100)));

// 解析搜索结果
$matches = array();
if ($result['total'] > 0) {
    foreach ($result['matches'] as $match) {
        $matches[] = $match['attrs']['id'];
    }
}

// 查询原始数据
$sql = 'SELECT * FROM products WHERE id IN (' . implode(',', $matches) . ')';
$result = $mysqli->query($sql);

while ($row = $result->fetch_assoc()) {
    echo $row['product_name_en'] . '<br>';
}
Salin selepas log masuk

Melalui kod di atas, kita boleh memilih medan carian yang sepadan berdasarkan bahasa semasa dan melakukan carian berdasarkan kata kunci carian. Akhir sekali, kami boleh mendapatkan hasil carian yang berkaitan melalui jadual data asal.

Ringkasan

 Artikel ini memperkenalkan cara menggunakan PHP dan Carian Manticore untuk membangunkan fungsi carian berbilang bahasa. Dengan kod sampel di atas, kami boleh melaksanakan fungsi carian berbilang bahasa dengan mudah untuk memenuhi keperluan pengguna global. Pada masa yang sama, Manticore Search juga menyediakan pelbagai pilihan konfigurasi dan antara muka operasi untuk mengoptimumkan lagi prestasi dan fungsi carian.

Saya harap artikel ini dapat membantu rakan-rakan yang membangunkan fungsi carian berbilang bahasa. Jika anda mempunyai sebarang pertanyaan, sila tinggalkan mesej di ruang komen.

Atas ialah kandungan terperinci Membangunkan keupayaan carian berbilang bahasa menggunakan PHP dan Carian Manticore. 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!