인터넷 정보가 폭발적으로 증가함에 따라 전체 텍스트 검색은 다량의 데이터를 처리하는 데 중요한 도구 중 하나가되었습니다. 웹 사이트 또는 응용 프로그램을 개발할 때는 전체 텍스트 검색이 중요하므로 사용자가 필요한 정보를 빠르게 찾을 수 있습니다. 이 기사를 사용하면 PHP 및 SQLITE를 통해 전체 텍스트 검색 및 인덱싱 기능을 구현하는 방법을 이해하기 위해 단계별로 진행됩니다.
먼저 운영 체제를 위해 공식 웹 사이트에서 다운로드 할 수있는 SQLITE 데이터베이스를 설치해야합니다. 설치 후 PHP의 구성 파일 (php.ini)에서 sqlite 확장자를 활성화하십시오. 운영 체제에 따라 다음 코드를 추가하십시오.
extension=sqlite3.so // Linux체계
extension=php_sqlite3.dll // Windows체계
구성 파일을 저장하고 웹 서버를 다시 시작하여 변경 사항이 적용됩니다.
전문 검색 및 인덱싱을 구현하기 전에 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 모듈을 활용함으로써 웹 응용 프로그램에서 효율적인 전체 텍스트 검색을 쉽게 달성하고 사용자 경험을 향상시킬 수 있습니다. 이 기사가 도움이되기를 바랍니다.