Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Panduan Pembangunan Carian PHP dan Manticore: Membina Carian Kluster Cekap

Panduan Pembangunan Carian PHP dan Manticore: Membina Carian Kluster Cekap

PHPz
PHPzasal
2023-08-06 21:18:141344semak imbas

Panduan Pembangunan Carian PHP dan Manticore: Membina Carian Kluster Cekap

Manticore Search ialah enjin carian teks penuh berprestasi tinggi, yang merupakan cabang enjin carian Sphinx dan direka untuk mengendalikan set data berskala besar dan konkurensi tinggi pertanyaan. Ia disepadukan sangat rapat dengan PHP dan menyediakan API dan fungsi yang kaya, membolehkan pembangun membina aplikasi carian kelompok yang cekap dengan mudah.

Artikel ini akan memperkenalkan cara menggunakan PHP dan Manticore Search untuk membina aplikasi carian kelompok yang cekap. Kami akan merangkumi aspek berikut:

  1. Memasang Carian Manticore
  2. Menyambung kepada kelompok Carian Manticore
  3. Mencipta dan mengurus indeks
  4. Melaksanakan pertanyaan carian teks penuh
  5. Isih dan penapisan hasil carian Manticore berdasarkan Isih
  6. Carian Manticore fungsi carian
  7. Pengurusan dan pengoptimuman kluster
  8. Pemasangan Carian Manticore
Sebelum bermula, kita perlu memasang Carian Manticore terlebih dahulu. Anda boleh memuat turun pakej pemasangan terkini dari laman web rasmi (https://www.manticoresearch.com/) dan memasangnya mengikut sistem pengendalian yang anda gunakan.

    Sambung ke Kluster Carian Manticore
Dalam PHP, kami boleh menggunakan sambungan PDO untuk menyambung ke Kluster Carian Manticore. Pertama, kita perlu mencipta objek sambungan PDO dan menentukan alamat hos, nombor port, nama perpustakaan indeks dan maklumat lain yang berkaitan:

$dsn = "mysql:host=127.0.0.1;port=9306;dbname=my_index";
$username = "root";
$password = "";

try {
    $connection = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
    die;
}

    Buat dan urus indeks
Manticore Search menggunakan indeks untuk menyimpan dan mencari data. Kami boleh menggunakan pernyataan SQL untuk mencipta indeks dan mentakrifkan jenis medan dan atribut:

$createIndexQuery = "CREATE TABLE my_index (
                        id INTEGER,
                        title TEXT,
                        content TEXT,
                        weight INTEGER
                    ) ENGINE='MANTICORE'";

$connection->query($createIndexQuery);

Kami juga boleh menggunakan pernyataan SQL lain untuk mengubah suai struktur indeks, seperti menambah medan, menukar atribut medan, dsb.

    Lakukan pertanyaan carian teks penuh
Carian teks penuh adalah mudah dengan Carian Manticore. Kita boleh menggunakan kata kunci MATCH untuk menentukan syarat carian dan MELAWAN untuk menentukan kata kunci carian:

$searchQuery = "SELECT * FROM my_index WHERE MATCH('keyword')";

$result = $connection->query($searchQuery);
$rows = $result->fetchAll(PDO::FETCH_ASSOC);

Kata kunci di sini boleh menjadi satu perkataan atau gabungan berbilang perkataan. Manticore Search akan mengembalikan hasil yang berkaitan dengan kata kunci.

    Isih dan tapis hasil carian berdasarkan Manticore Search
Kami boleh menggunakan klausa ORDER BY untuk mengisih hasil carian:

$searchQuery = "SELECT * FROM my_index WHERE MATCH('keyword') ORDER BY weight DESC";

// 执行查询并获取结果

Selain itu, kami juga boleh menggunakan klausa WHERE untuk menapis hasil carian:

$searchQuery = "SELECT * FROM my_index WHERE MATCH('keyword') AND category='news'";

// 执行查询并获取结果

    Pelaksanaan fungsi carian lanjutan
Selain fungsi carian teks penuh asas, Manticore Search juga menyediakan banyak fungsi carian lanjutan, seperti carian kad bebas, carian kabur, carian julat, dsb. Kita boleh menggunakan operator seperti LIKE, REGEXP dan BETWEEN untuk mencapai fungsi ini.

Berikut ialah beberapa kod sampel:

$searchQuery = "SELECT * FROM my_index WHERE title LIKE '%keyword%'";
$searchQuery = "SELECT * FROM my_index WHERE title REGEXP '[A-Za-z]+word'";
$searchQuery = "SELECT * FROM my_index WHERE date BETWEEN '2022-01-01' AND '2022-12-31'";

    Pengurusan dan Pengoptimuman Kluster
Carian Manticore menyokong penempatan kelompok untuk meningkatkan prestasi carian dan kebolehskalaan. Kita boleh menggunakan arahan berikut untuk menguruskan kluster:

sudo indexer --rotate --all
sudo searchd --stop
sudo searchd --start

Selain itu, kita juga boleh menggunakan kata kunci EXPLAIN untuk mengoptimumkan prestasi pertanyaan dan melihat rancangan pelaksanaan pertanyaan dan penggunaan indeks.

Ringkasan

Melalui artikel ini, kami mempelajari cara menggunakan PHP dan Carian Manticore untuk membina aplikasi carian kelompok yang cekap. Kami belajar untuk memasang Carian Manticore, menyambung ke kluster, mencipta dan mengurus indeks, melaksanakan pertanyaan carian teks penuh dan melaksanakan fungsi carian lanjutan.

Manticore Search ialah enjin carian yang berkuasa dan mudah digunakan yang disepadukan dengan sangat rapat dengan PHP. Dengan menggunakan sepenuhnya fungsi dan API Manticore Search, kami boleh membina aplikasi carian kelompok yang cekap untuk memenuhi pelbagai keperluan carian. Semoga artikel ini dapat membantu anda!

Atas ialah kandungan terperinci Panduan Pembangunan Carian PHP dan Manticore: Membina Carian Kluster Cekap. 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