Heim  >  Artikel  >  Backend-Entwicklung  >  So führen Sie eine Volltextsuche und -indizierung mit PHP und SQLite durch

So führen Sie eine Volltextsuche und -indizierung mit PHP und SQLite durch

PHPz
PHPzOriginal
2023-07-28 18:17:071715Durchsuche

So verwenden Sie PHP und SQLite für die Volltextsuche und -indizierung

Einführung:
Mit dem explosionsartigen Wachstum von Internetinformationen ist die Volltextsuche zu einem der wichtigsten Mittel zur Verarbeitung großer Datenmengen geworden. Bei der Entwicklung einer Website oder Anwendung müssen wir häufig eine Volltextsuchfunktion implementieren, damit Benutzer die benötigten Informationen schnell finden können. In diesem Artikel wird detailliert beschrieben, wie Sie mit PHP und SQLite Volltextsuch- und Indizierungsfunktionen implementieren.

1. SQLite installieren und konfigurieren

Zunächst müssen wir die für Ihr System geeignete Version von der offiziellen Website (https://www.sqlite.org/) herunterladen und installieren. Nach Abschluss der Installation muss die PHP-Erweiterung für SQLite zur PHP-Konfigurationsdatei (php.ini) hinzugefügt werden, damit wir die SQLite-Erweiterung in PHP verwenden können. Fügen Sie der Konfigurationsdatei den folgenden Inhalt hinzu:

extension=sqlite3.so // für Linux
extension=php_sqlite3.dll // für Windows

Speichern Sie die Konfigurationsdatei und starten Sie den Webserver neu, um sicherzustellen, dass die Konfiguration wirksam wird.

2. SQLite-Datenbank und Datentabelle erstellen

Bevor wir die Volltextsuche und -indizierung implementieren, müssen wir zunächst eine SQLite-Datenbank vorbereiten und eine Datentabelle zum Speichern unserer Daten erstellen. Öffnen Sie ein Terminal oder eine Eingabeaufforderung, gehen Sie zu Ihrem Projektverzeichnis und führen Sie den folgenden Befehl aus, um die Datenbank und die Datentabelle zu erstellen:

sqlite3 mydatabase.db

CREATE TABLE Articles (

id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
content TEXT

);

Speichern und beenden Sie SQLite Terminal.

3. Daten einfügen

Wir simulieren einige Artikeldaten und fügen sie zur Volltextsuche und Indizierung in die Datenbank ein. Im PHP-Code können wir den folgenden Code verwenden, um Daten einzufügen:

70b0fcd75b7959217522a78607aac88bsetAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$articles = [

['title' => '使用PHP进行全文搜索', 'content' => '在PHP中,我们有几种方法可以实现全文搜索功能。'],
['title' => 'PHP和SQLite全文搜索的厉害之处', 'content' => 'PHP和SQLite是一对绝佳的组合,它们可以轻松地实现全文搜索和索引功能。'],
// 更多文章...

];

foreach ($articles as $article) {

$sql = "INSERT INTO articles (title, content) VALUES (:title, :content)";
$stmt = $pdo->prepare($sql);
$stmt->execute($article);

}

?>

Der obige Code erstellt eine PDO-Instanz, mit der eine Verbindung hergestellt werden kann Erstellen Sie eine SQLite-Datenbank und verwenden Sie vorbereitete Anweisungen, um Daten in die Datentabelle einzufügen. Sie können bei Bedarf weitere Artikeldaten einfügen.

4. Volltextsuche und Index verwenden

In SQLite können wir die Volltextsuche und den Index verwenden, um die Volltextsuche zu implementieren. Zunächst müssen wir einen Volltextindex erstellen, um die Suche zu beschleunigen. Wir können einen Index für die Titel- und Inhaltsspalten des Artikels erstellen. Führen Sie die folgende SQL-Anweisung aus, um den Index zu erstellen:

CREATE VIRTUAL TABLE Articles_fts USING FTS5(title, content);

Als nächstes müssen wir die Daten in der Originaldatentabelle in den Volltextindex kopieren und den Index konsistent halten mit den Originaldaten synchron. Führen Sie die folgende SQL-Anweisung aus, um dies zu erreichen:

INSERT INTO Articles_fts(articles_fts) VALUES('rebuild');

Dadurch bleibt der Volltextindex mit den Originaldaten synchron. Als nächstes können wir den folgenden Code verwenden, um eine Volltextsuche durchzuführen:

70b0fcd75b7959217522a78607aac88bsetAttribute(PDO:: ATTR_ERRMODE, PDO ::ERRMODE_EXCEPTION);

$search = "PHP-Volltextsuche";
$sql = "SELECT * FROM Articles_fts WHERE content MATCH :search OR title MATCH :search";
$stmt = $pdo-> Prepare($sql );
$stmt->bindParam(':search', $search, PDO::PARAM_STR);
$stmt->execute();

$results = $stmt->fetchAll( PDO::FETCH_ASSOC );

foreach ($results as $result) {

echo "标题:{$result['title']},内容:{$result['content']}

";
}

?>

Der obige Code sucht nach Artikeln, die das Schlüsselwort „PHP-Volltextsuche“ enthalten, und zeigt sie an

Fazit:
Dieser Artikel stellt vor, wie man mit PHP und SQLite Volltextsuch- und Indexierungsfunktionen implementiert Anwendung und helfen Benutzern, die benötigten Informationen schnell zu finden. Auf diese Weise können wir mithilfe von SQLite als Datenbank problemlos Volltextsuch- und Indizierungsfunktionen implementieren.

Das obige ist der detaillierte Inhalt vonSo führen Sie eine Volltextsuche und -indizierung mit PHP und SQLite durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn