Pagefind: 정적 사이트 전문 검색
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' } });
💬 댓글