Repolode
teamtnt

teamtnt/tntsearch

SQLite, MySQL 또는 Redis에 인덱스를 구축하고 순위가 매겨진 문서 ID를 반환하는 PHP 전문 검색 엔진 라이브러리입니다.

스타
3,201
포크
296
열린 이슈
56
마지막 커밋
4일 전

어떤 프로젝트인가요?

TNTSearch는 별도의 검색 서버를 실행하지 않고도 애플리케이션에 전문 검색 기능을 추가할 수 있는 PHP 라이브러리입니다. SQLite, MySQL, PostgreSQL 데이터베이스나 텍스트 파일이 담긴 폴더 같은 데이터 소스를 지정해 인덱스 파일을 만든 뒤, 해당 인덱스에 쿼리를 실행하면 됩니다. 기본적으로 인덱스는 SQLite에 저장되며, MySQL과 Redis 엔진도 사용할 수 있습니다. 전체 인덱스를 다시 만들지 않고도 insert, update, delete 호출로 인덱스를 갱신할 수 있습니다.

검색에는 BM25와 TF-IDF를 사용한 관련도 순위 산정, AND, OR, NOT을 사용한 불리언 쿼리, 편집 거리를 설정할 수 있는 퍼지 매칭, 입력 중 검색을 위한 접두사 매칭이 지원됩니다. 또한 여러 언어의 형태소 분석기, 사용자 지정 토크나이저, 검색 결과 하이라이트와 스니펫, 지리 정보 기반 최근접 지점 검색, 간단한 텍스트 분류기도 포함되어 있습니다.

검색 메서드는 전체 행이 아닌 문서 ID와 점수를 반환하므로, 애플리케이션에서 자체 데이터베이스를 조회해 일치하는 레코드를 가져오고 반환된 순서를 유지해야 합니다. 별도 패키지로 Laravel Scout 드라이버도 제공됩니다.

핵심 기능

  • 01BM25와 TF-IDF를 사용한 관련도 순위 산정
  • 02AND, OR, NOT 연산자를 사용하는 불리언 검색
  • 03편집 거리와 접두사 길이를 조정할 수 있는 퍼지 매칭
  • 04입력 중 검색을 위한 접두사 매칭
  • 05SQLite, MySQL 또는 Redis에 인덱스를 저장하고 증분 갱신
  • 06여러 언어의 형태소 분석기와 사용자 지정 토크나이저

활용 사례

  • 별도의 검색 서버 없이 PHP 또는 Laravel 애플리케이션에 사이트나 제품 검색 기능 추가
  • 텍스트 파일로 저장된 문서 모음 검색
  • 좌표를 기준으로 주변 관심 지점 찾기
  • PHP 프로젝트에 간단한 텍스트 분류 기능 추가

빠른 시작

  1. 1

    Composer로 라이브러리를 설치합니다

    composer require teamtnt/tntsearch
  2. 2

    TNTSearch를 구성하고 소스 쿼리에서 인덱스를 만든 다음, 해당 인덱스를 선택해 검색합니다

사용 전 알아둘 점

  • 검색 결과에는 문서 자체가 아니라 문서 ID와 점수만 반환되므로, 자체 데이터베이스에서 행을 가져와야 합니다.
  • 기본 엔진을 사용하려면 PHP 7.4 이상과 pdo_sqlite 확장이 필요합니다.

포함된 컬렉션

토픽

자주 묻는 질문

tntsearch은(는) 무엇인가요?
SQLite, MySQL 또는 Redis에 인덱스를 구축하고 순위가 매겨진 문서 ID를 반환하는 PHP 전문 검색 엔진 라이브러리입니다. TNTSearch는 별도의 검색 서버를 실행하지 않고도 애플리케이션에 전문 검색 기능을 추가할 수 있는 PHP 라이브러리입니다. SQLite, MySQL, PostgreSQL 데이터베이스나 텍스트 파일이 담긴 폴더 같은 데이터 소스를 지정해 인덱스 파일을 만든 뒤, 해당 인덱스에 쿼리를 실행하면 됩니다. 기본적으로 인덱스는 SQLite에 저장되며, MySQL과 Redis 엔진도 사용할 수 있습니다. 전체 인덱스를 다시 만들지 않고도 insert, update, delete 호출로 인덱스를 갱신할 수 있습니다.
tntsearch은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
tntsearch은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
tntsearch은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. tntsearch의 마지막 커밋은 2026년 11월 3일입니다.
tntsearch은(는) 어디에 사용할 수 있나요?
별도의 검색 서버 없이 PHP 또는 Laravel 애플리케이션에 사이트나 제품 검색 기능 추가 텍스트 파일로 저장된 문서 모음 검색 좌표를 기준으로 주변 관심 지점 찾기 PHP 프로젝트에 간단한 텍스트 분류 기능 추가
tntsearch는 어떻게 설치하나요?
Composer로 라이브러리를 설치합니다: composer require teamtnt/tntsearch TNTSearch를 구성하고 소스 쿼리에서 인덱스를 만든 다음, 해당 인덱스를 선택해 검색합니다
tntsearch은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/teamtnt/tntsearch

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트