전체 텍스트 검색 및 인덱싱을 위해 PHP 및 SQLite를 사용하는 방법
소개:
인터넷 정보가 폭발적으로 증가함에 따라 전체 텍스트 검색은 대용량 데이터를 처리하는 중요한 수단 중 하나가 되었습니다. 웹사이트나 애플리케이션을 개발할 때 사용자가 필요한 정보를 빠르게 찾을 수 있도록 전체 텍스트 검색 기능을 구현해야 하는 경우가 많습니다. 이 기사에서는 PHP와 SQLite를 사용하여 전체 텍스트 검색 및 인덱싱 기능을 구현하는 방법을 자세히 소개합니다.
1. SQLite 설치 및 구성
먼저 SQLite 데이터베이스를 설치해야 합니다. 공식 웹사이트(https://www.sqlite.org/)에서 사용 중인 시스템에 적합한 버전을 다운로드하여 설치할 수 있습니다. 설치가 완료된 후 PHP에서 SQLite 확장을 사용할 수 있도록 SQLite용 PHP 확장을 PHP 구성 파일(php.ini)에 추가해야 합니다. 구성 파일에 다음 내용을 추가합니다.
extension=sqlite3.so // Linux
extension=php_sqlite3.dll // Windows
구성 파일을 저장하고 웹 서버를 다시 시작하여 구성이 적용되는지 확인하세요.
2. SQLite 데이터베이스 및 데이터 테이블 만들기
전체 텍스트 검색 및 인덱싱을 구현하기 전에 먼저 SQLite 데이터베이스를 준비하고 데이터를 저장할 데이터 테이블을 만들어야 합니다. 터미널 또는 명령 프롬프트를 열고 프로젝트 디렉터리로 이동한 후 다음 명령을 실행하여 데이터베이스 및 데이터 테이블을 생성합니다.
sqlite3 mydatabase.db
CREATE TABLE Articles (
id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, content TEXT
);
SQLite를 저장하고 종료합니다. 단말기.
3. 데이터 삽입
일부 기사 데이터를 시뮬레이션하고 전체 텍스트 검색 및 색인 생성을 위해 데이터베이스에 삽입합니다. 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 데이터베이스를 사용하고 준비된 문을 사용하여 데이터 테이블에 데이터를 삽입합니다. 필요에 따라 더 많은 기사 데이터를 삽입할 수 있습니다.
4. 전체 텍스트 검색 및 색인 사용
SQLite에서는 전체 텍스트 검색 및 색인을 사용하여 전체 텍스트 검색을 구현할 수 있습니다. 먼저 검색 속도를 높이기 위해 전체 텍스트 인덱스를 만들어야 합니다. 기사의 제목 및 내용 열에 대한 색인을 생성할 수 있습니다. 다음 SQL 문을 실행하여 인덱스를 생성합니다.
CREATE VIRTUAL TABLE Articles_fts USING FTS5(title, content);
다음으로 원본 데이터 테이블의 데이터를 전체 텍스트 인덱스로 복사하고 인덱스를 일관되게 유지해야 합니다. 원본 데이터와 동기화합니다. 이를 달성하려면 다음 SQL 문을 실행하십시오.
INSERT INTO Articles_fts(articles_fts) VALUES('rebuild');
이렇게 하면 전체 텍스트 인덱스가 원본 데이터와 동기화된 상태로 유지됩니다. 다음으로, 다음 코드를 사용하여 전체 텍스트 검색을 수행할 수 있습니다:
$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를 데이터베이스로 사용하여 웹 애플리케이션에서 전체 텍스트 검색 및 색인 기능을 쉽게 구현할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.
위 내용은 PHP 및 SQLite를 사용하여 전체 텍스트 검색 및 인덱싱을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!