Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk melakukan carian teks penuh dan pengindeksan menggunakan PHP dan SQLite

Bagaimana untuk melakukan carian teks penuh dan pengindeksan menggunakan PHP dan SQLite

PHPz
Lepaskan: 2023-07-28 19:30:01
asal
1786 orang telah melayarinya

Cara menggunakan PHP dan SQLite untuk carian teks penuh dan pengindeksan

Pengenalan:
Dengan pertumbuhan pesat maklumat Internet, carian teks penuh telah menjadi salah satu cara penting untuk memproses data besar-besaran. Apabila membangunkan tapak web atau aplikasi, kami selalunya perlu melaksanakan fungsi carian teks penuh supaya pengguna dapat mencari maklumat yang mereka perlukan dengan cepat. Artikel ini akan memperkenalkan secara terperinci cara menggunakan PHP dan SQLite untuk melaksanakan fungsi carian dan pengindeksan teks penuh.

1. Pasang dan konfigurasikan SQLite

Pertama, kami perlu memasang pangkalan data SQLite Anda boleh memuat turun versi yang sesuai untuk sistem anda dari tapak web rasminya (https://www.sqlite.org/) dan memasangnya. Selepas pemasangan selesai, sambungan PHP untuk SQLite perlu ditambahkan pada fail konfigurasi PHP (php.ini) supaya kita boleh menggunakan sambungan SQLite dalam PHP. Tambahkan kandungan berikut pada fail konfigurasi:

extension=sqlite3.so // untuk Linux
extension=php_sqlite3.dll // untuk Windows

Simpan fail konfigurasi dan mulakan semula pelayan web untuk memastikan konfigurasi berkuat kuasa.

2. Cipta pangkalan data dan jadual data SQLite

Sebelum melaksanakan carian dan pengindeksan teks penuh, kami perlu menyediakan pangkalan data SQLite terlebih dahulu dan mencipta jadual data untuk menyimpan data kami. Buka terminal atau command prompt, pergi ke direktori projek anda, dan laksanakan arahan berikut untuk mencipta pangkalan data dan jadual data:

sqlite3 mydatabase.db

CREATE TABLE articles (

id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
content TEXT
Salin selepas log masuk

);

Simpan dan keluar dari SQLite terminal.

3. Masukkan data

Kami akan mensimulasikan beberapa data artikel dan memasukkannya ke dalam pangkalan data untuk carian dan pengindeksan teks penuh. Dalam kod PHP, kita boleh menggunakan kod berikut untuk memasukkan data:

$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是一对绝佳的组合,它们可以轻松地实现全文搜索和索引功能。'],
// 更多文章...
Salin selepas log masuk

];

foreach ($artikel sebagai $article) {

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

}

?>

kod di atas akan

Pangkalan data SQLite dan gunakan pernyataan yang disediakan untuk memasukkan data ke dalam jadual data. Anda boleh memasukkan lebih banyak data artikel mengikut keperluan.

4. Gunakan carian teks penuh dan indeks

Dalam SQLite, kami boleh menggunakan carian dan indeks TEKS PENUH untuk melaksanakan carian teks penuh. Pertama, kita perlu mencipta indeks teks penuh untuk mempercepatkan carian. Kita boleh membuat indeks pada tajuk dan lajur kandungan artikel. Laksanakan pernyataan SQL berikut untuk mencipta indeks:

BUAT VIRTUAL TABLE articles_fts MENGGUNAKAN FTS5(tajuk, kandungan);

Seterusnya, kita perlu menyalin data dalam jadual data asal ke indeks teks penuh dan memastikan indeks konsisten dengan data asal segerak. Laksanakan pernyataan SQL berikut untuk mencapai ini:

MASUKKAN KE DALAM artikel_fts(articles_fts) NILAI('bina semula');

Ini akan memastikan indeks teks penuh selari dengan data asal. Seterusnya, kita boleh menggunakan kod berikut untuk melakukan carian teks penuh:

$pdo = new PDO("sqlite:mydatabase.db");
$pdo->setAttribute(PDO:: ATTR_ERRMODE, PDO ::ERRMODE_EXCEPTION);

$search = "PHP full text search";
$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']}
Salin selepas log masuk

";
}

?>

Kod di atas akan mencari artikel yang mengandungi kata kunci "carian teks penuh PHP" dan memaparkan hasil dalam tajuk dan kandungan Keluaran Borang

Kesimpulan:
Artikel ini memperkenalkan cara menggunakan PHP dan SQLite untuk melaksanakan fungsi carian teks penuh dan pengindeksan dan membantu pengguna mencari maklumat yang mereka perlukan dengan cepat Dengan cara ini, kami boleh melaksanakan fungsi carian dan pengindeksan teks penuh dengan mudah dalam aplikasi web menggunakan SQLite sebagai pangkalan data. Saya harap artikel ini akan membantu anda.

Atas ialah kandungan terperinci Bagaimana untuk melakukan carian teks penuh dan pengindeksan menggunakan PHP dan SQLite. 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