본문으로 건너뛰기
김신건의 로그

Pagefind: 정적 사이트 전문 검색

· 수정 · 📖 약 1분 · 108자/단어 #frameworks #search #astro #static
Pagefind, pagefind, 정적 검색, static search

정의

Pagefind 는 정적 사이트 (SSG) 용 클라이언트 사이드 전문 검색 엔진. 빌드 후 정적 인덱스 생성, 브라우저에서 fetch 로 검색.

특징

  • 서버 없음: JS + fragment index 만
  • 다국어 자동 감지
  • 작은 인덱스: 40MB HTML → 300KB index 정도
  • stemming: Snowball 알고리즘

Astro 통합

npm i -D astro-pagefind
// astro.config.mjs
import pagefind from 'astro-pagefind';
export default defineConfig({
    integrations: [pagefind()],
});
---
import { PagefindSearch } from 'astro-pagefind/components';
---
<PagefindSearch />

사용 (직접)

const pagefind = await import('/pagefind/pagefind.js');
const search = await pagefind.search('rails');
for (const r of search.results) {
    const data = await r.data();
    console.log(data.url, data.excerpt);
}

필터링

HTML 에 data-pagefind-filter 속성으로 카테고리 필터:

<article data-pagefind-filter="category:blog">
pagefind.search('rails', { filters: { category: 'blog' } });

참고

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기