インターネット情報の爆発により、フルテキスト検索は、大量のデータを処理するための重要なツールの1つになりました。ウェブサイトまたはアプリケーションを開発するとき、フルテキスト検索が重要であり、ユーザーが必要な情報をすばやく見つけることができます。この記事では、PHPとSQLiteを介してフルテキスト検索およびインデックス機能を実装する方法を理解するために、段階的に段階的に説明します。
まず、SQLiteデータベースをインストールする必要があります。SQLiteデータベースは、オペレーティングシステムの公式Webサイトからダウンロードできます。インストール後、PHPの構成ファイル(PHP.ini)でSQLite拡張機能を有効にしてください。オペレーティングシステムに応じて、次のコードを追加します。
extension=sqlite3.so // Linuxシステム
extension=php_sqlite3.dll // Windowsシステム
構成ファイルを保存し、Webサーバーを再起動して変更を有効にします。
全文検索とインデックス作成を実装する前に、SQLiteデータベースを作成し、データを保存するデータテーブルを作成する必要があります。端末またはコマンドプロンプトを開き、プロジェクトディレクトリを入力して、次のコマンドを実行します。
sqlite3 mydatabase.db
CREATE TABLE articles (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
content TEXT
);
SQLite端子を保存して終了します。
次に、いくつかの記事データをシミュレートし、フルテキスト検索とインデックス作成のためにデータベースに挿入します。データを挿入するためのPHPコードは次のとおりです。
$pdo = new PDO("sqlite:mydatabase.db");
$pdo->setAttribute(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);
}
このコードは、PDOを介してSQLiteデータベースに接続され、プリプロセシングステートメントを使用してデータをテーブルに挿入します。実際のニーズに応じて、より多くのデータを挿入できます。
SQLiteでは、全文検索関数を使用するには、フルテキストインデックスを作成する必要があります。記事のタイトルとコンテンツ列にインデックスを作成して、検索効率を向上させます。次のSQLコマンドを実行して、フルテキストインデックスを作成します。
CREATE VIRTUAL TABLE articles_fts USING FTS5(title, content);
次に、元のテーブルからフルテキストインデックスにデータをコピーして、同期したままにして、実行します。
INSERT INTO articles_fts(articles_fts) VALUES('rebuild');
全文検索には、次のPHPコードを使用します。
$pdo = new PDO("sqlite:mydatabase.db");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$search = "PHP全文検索";
$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']}";
}
このコードは、「PHPフルテキスト検索」を含む記事を検索し、一致するタイトルとコンテンツを出力します。
この記事では、PHPとSQLiteを使用してフルテキスト検索およびインデックス機能を実装する方法を紹介します。フルテキストインデックスを作成し、SQLiteのFTS5モジュールを利用することにより、Webアプリケーションで効率的なフルテキスト検索を簡単に実現し、ユーザーエクスペリエンスを向上させることができます。この記事があなたを助けることを願っています。