Verwenden Sie PHP und Coreseek, um eine genaue Rezeptsuchfunktion zu erreichen
Übersicht:
Im heutigen schnelllebigen Leben beginnen immer mehr Menschen, auf ihre gesunde Ernährung zu achten. Das Finden des richtigen Rezepts wird zur Notwendigkeit. In diesem Artikel wird erläutert, wie Sie mit PHP und der Coreseek-Suchmaschine eine genaue Rezeptsuchfunktion implementieren, damit Benutzer leicht Rezepte finden können, die ihren Anforderungen entsprechen.
Vorbereitung:
Bevor wir beginnen, müssen wir einige Tools vorbereiten:
Kernidee:
Schritt 1: Rezeptdaten vorbereiten und in die MySQL-Datenbank importieren
Zuerst müssen wir eine Datenbank zum Speichern von Rezeptdaten erstellen. Sie können Tools wie phpMyAdmin verwenden oder die entsprechende SQL-Anweisung direkt in der Befehlszeile ausführen, um sie zu erstellen.
Die SQL-Anweisungen zum Erstellen von Datenbanken und Tabellen lauten wie folgt:
CREATE DATABASE IF NOT EXISTS-Rezept;
USE-Rezept;
CREATE TABLE IF NOT EXISTS-Rezepte (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, ingredients TEXT NOT NULL, directions TEXT NOT NULL
);
Als nächstes können wir ein PHP-Skript schreiben um lokale Rezepturdaten auszulesen und in die Datenbank zu importieren. Nehmen wir an, unsere Rezeptdaten werden in einer Textdatei namens „recipes.txt“ mit dem folgenden Format gespeichert:
Titel 1
Zutat 1, Zutat 2, Zutat 3
Schritt 1, Schritt 2, Schritt 3
Titel 2
Zutaten 4, Zutaten 5, Zutaten 6
Schritt 4, Schritt 5, Schritt 6
Der PHP-Skriptcode lautet wie folgt:
// Öffnen Sie die Datei
$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);
}
?>
Im obigen Code öffnen wir die Datei mit dem Namen „recipes.txt“ und lesen den Inhalt Zeile für Zeile. Unterscheiden Sie die Titel, Zutaten und Schritte verschiedener Rezepte durch die Verwendung von Leerzeilen. Nachdem jedes vollständige Rezept gelesen wurde, fügen wir es in die Datenbank ein.
Schritt 2: Konfigurieren und starten Sie die Coreseek-Suchmaschine
Entpacken Sie zunächst das heruntergeladene komprimierte Coreseek-Paket in das angegebene Verzeichnis. Geben Sie das Coreseek-Verzeichnis ein, bearbeiten Sie die Konfigurationsdatei „sphinx.conf“ und konfigurieren Sie den folgenden Inhalt:
Quellrezept
{
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
}
Indexrezept
{
source = recipe path = /path/to/index/recipe docinfo = extern min_word_len = 1 charset_type = utf-8
}
searchd
{
listen = 9312 log = /path/to/searchd.log query_log = /path/to/query.log max_matches = 1000
}
at In der obigen Konfiguration haben wir eine Datenquelle namens „Rezept“ definiert und die MySQL-Datenbank verwendet, um Rezeptdaten abzurufen. Anschließend wurde ein Index mit dem Namen „recipe“ erstellt und die zugehörigen Pfade und Konfigurationen festgelegt.
Verwenden Sie nach dem Speichern und Beenden der Konfigurationsdatei den folgenden Befehl, um die Coreseek-Suchmaschine zu starten:
/path/to/coreseek/bin/searchd --config /path/to/coreseek/etc/sphinx.conf
Schritt drei: Codieren der Suchfunktion mit PHP
Jetzt können wir die Suchfunktion mit PHP codieren. Angenommen, wir haben auf unserer Webseite ein Suchformular, in das Benutzer Schlüsselwörter für die Suche eingeben können.
HTML-Code sieht so aus:
PHP-Skriptcode sieht wie folgt aus (search.php):
// Vom Benutzer eingegebene Schlüsselwörter abrufen
$keyword = $_GET['keyword'];
// Datenbank abfragen
$sql = "SELECT * FROM Rezepte WHERE MATCH('".$ Schlüsselwort. "')";
// SQL-Anweisungen ausführen
// ...
// Abfrageergebnisse analysieren
// ...
// Suchergebnisse anzeigen
// ...
?>
Im obigen Code erhalten wir zunächst das vom Benutzer eingegebene Schlüsselwort und speichern es in der Variablen $keyword. Anschließend verwenden wir das Schlüsselwort MATCH, um die Datenbank abzufragen und Rezeptdaten zu erhalten, die dem Schlüsselwort entsprechen. Der spezifische Datenbankabfrage- und Ergebnisanalysecode wird hier weggelassen, Sie können ihn entsprechend Ihren eigenen Anforderungen implementieren.
Schließlich können wir auf der Suchergebnisseite die Suchergebnisse entsprechend spezifischer Anforderungen anzeigen, z. B. mithilfe von Schleifenanweisungen, um die abgefragten Daten zu durchlaufen und sie dem Benutzer in Form einer Liste oder Karte anzuzeigen.
Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie mit PHP und der Coreseek-Suchmaschine eine genaue Rezeptsuchfunktion erreichen. Indem wir Rezeptdaten vorbereiten, die Coreseek-Suchmaschine konfigurieren und starten und relevanten PHP-Code schreiben, können wir ganz einfach eine leistungsstarke Rezeptsuchfunktion implementieren, die Benutzern hilft, schnell Rezepte zu finden, die ihren Anforderungen entsprechen. Gleichzeitig können Sie den Code auch entsprechend Ihren eigenen Bedürfnissen erweitern und optimieren, um ein besseres Benutzererlebnis zu erreichen.
Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP und Coreseek, um eine präzise Rezeptsuchfunktion zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!