Rumah >pembangunan bahagian belakang >tutorial php >Gunakan PHP dan coreseek untuk melaksanakan fungsi carian resipi yang tepat

Gunakan PHP dan coreseek untuk melaksanakan fungsi carian resipi yang tepat

王林
王林asal
2023-08-05 13:16:431494semak imbas

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

);

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:

06f9833e423823efb6c20c7328b49045

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

}

index recipe
{

source = recipe
path = /path/to/index/recipe
docinfo = extern
min_word_len = 1
charset_type = utf-8

}

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:

db98d42453e49bb1a842765f91fd0202

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

f5a47148e367a6035fd7a2faa965022e

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

02bf0562caa661f1d224fe8cbebeba45

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!

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