Gunakan PHP dan coreseek untuk melaksanakan fungsi carian resipi yang tepat

王林
Lepaskan: 2023-08-05 13:18:02
asal
1449 orang telah melayarinya

Gunakan PHP dan coreseek untuk mencapai fungsi carian resipi yang tepat

Ikhtisar:
Dalam kehidupan yang serba pantas hari ini, semakin ramai orang mula memberi perhatian kepada kesihatan pemakanan mereka. Mencari resipi yang betul menjadi satu keperluan. Artikel ini akan memperkenalkan cara menggunakan PHP dan enjin carian coreseek untuk melaksanakan fungsi carian resipi yang tepat untuk membantu pengguna mencari resipi yang memenuhi keperluan mereka dengan mudah.

Persediaan:
Sebelum kita mula, kita perlu menyediakan beberapa alatan:

  1. Persekitaran PHP: Sediakan persekitaran PHP secara setempat atau pada pelayan untuk memastikan skrip PHP boleh dijalankan.
  2. Pangkalan data MySQL: digunakan untuk menyimpan data resipi.
  3. Enjin Carian Coreseek: Enjin carian teks penuh berdasarkan Sphinx. Versi terkini boleh dimuat turun dari laman web rasminya.

Idea teras:

  1. Sediakan data resipi dan importnya ke dalam pangkalan data MySQL.
  2. Konfigurasikan dan mulakan enjin carian Coreseek.
  3. Gunakan PHP untuk menulis kod fungsi carian untuk merealisasikan input pengguna dan paparan hasil carian.

Langkah 1: Sediakan data resipi dan importnya ke dalam pangkalan data MySQL

Pertama, kita perlu mencipta pangkalan data untuk menyimpan data resipi. Anda boleh menggunakan alat seperti phpMyAdmin atau terus melaksanakan pernyataan SQL yang sepadan pada baris arahan untuk menciptanya.

Pernyataan SQL untuk mencipta pangkalan data dan jadual adalah seperti berikut:

BUAT PANGKALAN DATA JIKA TIDAK WUJUD resipi;
GUNAKAN resipi;
BUAT JADUAL JIKA TIDAK WUJUD resipi (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
ingredients TEXT NOT NULL,
directions TEXT NOT NULL
Salin selepas log masuk

);

Skrip kita boleh tulis seterusnya untuk membaca data resipi tempatan dan mengimportnya ke dalam pangkalan data. Katakan data resipi kami disimpan dalam fail teks yang dipanggil "recipes.txt" dengan format berikut:

Tajuk 1
Bahan 1, Bahan 2, Bahan 3
Langkah 1, Langkah 2, Langkah 3

Tajuk 2
4, Bahan 5, Bahan 6
Langkah 4, Langkah 5, Langkah 6

Kod skrip PHP adalah seperti berikut:

// Buka fail
$handle = fopen('recipes.txt ', 'r');
if ($handle) {

$title = '';
$ingredients = '';
$directions = '';

while (($line = fgets($handle)) !== false) {
    $line = trim($line);

    if ($line != '') {
        if ($title == '') {
            $title = $line;
        } elseif ($ingredients == '') {
            $ingredients = $line;
        } elseif ($directions == '') {
            $directions = $line;
        }

        if ($title != '' && $ingredients != '' && $directions != '') {
            // 将食谱数据插入数据库
            $sql = "INSERT INTO recipes (title, ingredients, directions) VALUES ('" . $title . "', '" . $ingredients . "', '" . $directions . "')";
            // 执行SQL语句
            // ...

            // 重置数据
            $title = '';
            $ingredients = '';
            $directions = '';
        }
    }
}

fclose($handle);
Salin selepas log masuk

}
?>

Dalam kod di atas, kami membuka fail bernama "recipes.txt" dan membaca kandungannya baris demi baris. Bezakan tajuk, ramuan dan langkah resipi yang berbeza dengan menggunakan garisan kosong. Selepas setiap resipi lengkap dibaca, kami memasukkannya ke dalam pangkalan data.

Langkah 2: Konfigurasikan dan mulakan enjin carian Coreseek

Mula-mula, nyahzip pakej mampat coreseek yang dimuat turun ke direktori yang ditentukan. Masukkan direktori Coreseek, edit fail konfigurasi "sphinx.conf", dan konfigurasikan kandungan berikut:

source recipe
{

type = mysql
sql_host = localhost
sql_user = root
sql_pass = your_password
sql_db = recipe
sql_port = 3306
sql_query = SELECT id, title, ingredients, directions FROM recipes
Salin selepas log masuk

}

index recipe
{

source = recipe
path = /path/to/index/recipe
docinfo = extern
min_word_len = 1
charset_type = utf-8
Salin selepas log masuk

}

researchd
}

at Dalam konfigurasi di atas, kami menentukan sumber data bernama "resipi" dan menggunakan pangkalan data MySQL untuk mendapatkan data resipi. Kemudian, indeks bernama "resipi" telah dicipta dan laluan serta konfigurasi yang berkaitan telah ditetapkan.

Selepas menyimpan dan keluar dari fail konfigurasi, gunakan arahan berikut untuk memulakan enjin carian Coreseek:

/path/to/coreseek/bin/searchd --config /path/to/coreseek/etc/sphinx.conf

Langkah ketiga: Mengekodkan fungsi carian menggunakan PHP

Kini, kita boleh mengekodkan fungsi carian menggunakan PHP. Katakan kami mempunyai borang carian pada halaman web kami di mana pengguna boleh memasukkan kata kunci untuk mencari.

Kod HTML kelihatan seperti ini:

listen = 9312
log = /path/to/searchd.log
query_log = /path/to/query.log
max_matches = 1000
Salin selepas log masuk

Kod skrip PHP kelihatan seperti di bawah (search.php):

// Dapatkan kata kunci yang dimasukkan oleh pengguna
$kata kunci = $_GET['kata kunci'];

// Tanya pangkalan data

$sql = "PILIH * DARI resipi DI MANA PADAN('".$ kata kunci. "')";
// Laksanakan pernyataan SQL
// ...

// Parse hasil pertanyaan

// ...

// Paparkan hasil carian

// ...

?>

Dalam kod di atas, kami mula-mula mendapatkan kata kunci yang dimasukkan oleh pengguna dan menyimpannya dalam pembolehubah $kata kunci. Kemudian, kami menggunakan kata kunci MATCH untuk menanyakan pangkalan data dan mendapatkan data resipi yang sepadan dengan kata kunci. Pertanyaan pangkalan data khusus dan kod penghuraian hasil ditinggalkan di sini, anda boleh melaksanakannya mengikut keperluan anda sendiri.

Akhir sekali, dalam halaman hasil carian, kami boleh memaparkan hasil carian mengikut keperluan khusus, seperti menggunakan pernyataan gelung untuk melintasi data yang ditanya dan memaparkannya kepada pengguna dalam bentuk senarai atau kad.

Ringkasan:

Artikel ini memperkenalkan cara menggunakan PHP dan enjin carian coreseek untuk mencapai fungsi carian resipi yang tepat. Dengan menyediakan data resipi, mengkonfigurasi dan memulakan enjin carian Coreseek, dan menulis kod PHP yang berkaitan, kami boleh dengan mudah melaksanakan fungsi carian resipi yang berkuasa untuk membantu pengguna mencari resipi yang memenuhi keperluan mereka dengan cepat. Pada masa yang sama, anda juga boleh mengembangkan dan mengoptimumkan kod mengikut keperluan anda sendiri untuk mencapai pengalaman pengguna yang lebih baik.

Atas ialah kandungan terperinci Gunakan PHP dan coreseek untuk melaksanakan fungsi carian resipi yang tepat. 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!