Zotero에서 Full-Library Search 실측: PDF 10,000개를 7분 만에 인덱싱, 쿼리는 19.5 ms

여러분의 Zotero 라이브러리에는 수백 — 어쩌면 수만 — 편의 PDF가 쌓여 있습니다. "라이브러리에 이 주제를 다룬 논문이 분명 있었는데"… 그다음은요? 태그를 뒤지고, 연도순으로 정렬하고, 키워드를 감으로 맞춰봅니다. 10분이 지나도 아직 못 찾았습니다. Zotero의 내장 검색은 항목을 찾아줄 수는 있어도 질문에는 답하지 않으며, 50편의 논문에 걸친 결론을 종합해 주는 일은 더더욱 아닙니다.

PapersGPT의 **Full-Library Search(전체 라이브러리 검색)**는 정확히 이 문제를 해결하기 위해 존재합니다: 체크박스 하나만 켜면 라이브러리 전체가 자연어로 질문할 수 있는 지식 베이스가 되고, 열어 볼 논문 목록이 아니라 클릭 가능한 인용이 붙은 직접적인 답을 돌려줍니다.

이 글에는 개념 설명이 없습니다. 딱 세 가지만 담았습니다: 벤치마크 수치, 사용법, 그리고 가장 큰 효과를 내는 상황.

먼저 숫자부터: 10,000개 PDF도 여전히 19.5 ms

공식 벤치마크는 두 가지 라이브러리 규모에서 인덱싱부터 쿼리까지 전체 테스트를 실행했습니다(데이터 출처: 오픈소스 저장소, 2.7k+ stars):

지표 1,000개 PDF 10,000개 PDF
원본 데이터 4.2 GB 42 GB (~170k pages)
인덱싱 시간 51.5 s 7m 01s
평균 쿼리 시간 13.1 ms 19.5 ms
메모리(RSS) 353 MB 2.21 GB
인덱스 크기 100 MB 901 MB

기억할 가치가 있는 세 가지 숫자:

  • 라이브러리가 10배가 되어도, 쿼리당 +6.4 ms. 13.1 ms → 19.5 ms — 브라우저의 네트워크 왕복 한 번에도 못 미치는 차이입니다. 일상 사용에서는 논문 100편 검색이나 10,000편 검색이나 체감이 같습니다.
  • 17만 페이지를 7분에 — 단 한 번 지불하는 비용입니다. 환산하면 약 400 pages/s입니다. 인덱싱 이후에는 모든 쿼리가 밀리초 범위에 머무르고, 새로 추가된 논문은 증분으로 인덱싱됩니다. 재구축은 없습니다.
  • 42 GB의 원본 PDF가 901 MB 인덱스로 압축(~2%) — 그래서 평범한 노트북에서도 여유 있게 돌아갑니다.

작동 방식

Full-Library Search는 여러분의 PDF를 누군가의 클라우드에 올리지 않습니다 — 모든 것이 여러분의 머신 안에서 일어납니다:

  1. 네이티브 C++ 엔진. 인덱싱과 검색 코어는 C++로 작성되었습니다 — 데이터베이스 엔진과 거래 시스템이 쓰는 부류의 언어입니다 — 검색 핫 패스에 Python/Node 인터프리터 오버헤드가 없습니다.
  2. "퍼지" 벡터 의미 검색이 아니라 구조 인덱싱. 엔진은 문서 구조(제목, 섹션, 초록, 참고문헌이 어디에 있는지)를 이해하고 BM25 전체 텍스트 랭킹과 결합합니다 — 현대 검색 엔진을 떠받치는 것과 같은 랭킹 모델로, 일반적인 벡터 매칭보다 학술 텍스트의 관련성 판정에 훨씬 신뢰할 수 있습니다.
  3. 네트워크 왕복 제로. 업로드 대기열도, 서버 측 인덱싱도, API 지연도 없습니다. 여러분이 보는 속도는 곧 여러분의 머신의 속도입니다.

사용자 관점: 효과가 큰 네 가지 상황

1. Related Work 작성: 논문 50편이 알아서 줄을 서게 하기

"내 라이브러리에서 transformer를 시계열 예측에 사용한 논문은 무엇이고, 각각 어떤 베이스라인과 비교하나요?"

Full-Library Search는 라이브러리 전체를 훑고 관련도 순으로 정렬해 종합합니다 — 모든 주장 뒤에는 원문으로 바로 이동하는 인용이 붙습니다. 이제 검색하는 대신 검증만 하면 됩니다.

2. "제목을 까먹은 그 논문" 찾기

"몇 달 전에 합성 데이터로 환각을 완화하는 내용을 읽었는데 — 독일 그룹이었던 것 같아요."

제목은 필요 없습니다. 내용을 설명하면 됩니다. 검색은 제목, 저자, 태그, 초록에 더해 Zotero 안의 여러분이 남긴 주석과 노트까지 커버합니다 — 그때 여백에 적어 둔 한 줄이 오늘 칠 수 있는 최고의 쿼리입니다.

3. 상충하는 근거 점검: 논문 발표 전의 보험

이것의 고급 형태가 Global Library Synthesis입니다: 최대 10,000+개 문서를 동시에 분석해 연구 트렌드, 용어의 변화, 그리고 무엇보다 상충하는 결론을 짚어 냅니다. "X 효과에 대해 내 라이브러리에는 찬성과 반대 근거가 각각 무엇이 있나요?" 손으로 하면 일주일 걸릴 질문이 여기서는 몇 분입니다.

4. 그룹 미팅 10분 전

"내 라이브러리에 있는 이 바이오마커 관련 논문들을 표본 크기가 큰 순서대로 그룹화해서 각 그룹을 요약해 줘."

답은 채팅 창에 도착합니다 — 복사할 수 있고, Zotero 노트로 저장할 수 있고, 인용은 모두 추적 가능합니다.

Zotero 내장 검색과의 차이

Zotero 내장 검색 PapersGPT Full-Library Search
반환하는 것 항목 목록 직접적인 답 + 클릭 가능한 인용
문서 간 종합 ❌ ✅ 논문 간 비교, 상충 근거 분석
쿼리 방식 키워드 매칭 자연어(어떤 언어든)
커버리지 메타데이터 + 전체 텍스트 인덱스 전문 + 여러분의 주석과 노트
일반적인 지연 시간 수 초 ~19.5 ms 만에 결과
요약 ❌ ✅ 30+ LLMs 구동

둘은 서로를 보완합니다: Zotero 검색은 항목을 찾고, Full-Library Search는 답을 가져다줍니다.

프라이버시: 비행기 모드에서도 작동

인덱싱과 검색은 100% 로컬에서 이루어지며 클라우드 API에 의존하지 않습니다. 실제로는:

  • 비행기 모드 대응: 검색과 인덱싱은 완전히 오프라인에서 작동합니다.
  • 바이트 하나도 새지 않음: PDF, 노트, 주석, 쿼리는 결코 머신을 떠나지 않습니다.
  • 완전한 오프라인 워크플로: Ollama로 로컬 모델을 연결하면(또는 내장 원클릭 오픈소스 다운로드를 쓰면) 질문에서 답까지의 전체 루프가 네트워크 없이 돌아갑니다. 미발표 데이터, 기업 내부 연구, 컴플라이언스가 중요한 업무에 이상적입니다.

그리고 라이브러리 전체를 Claude Code, Cursor 또는 유사한 에이전트에 연결하고 싶다면, Zotero MCP Server가 Zotero를 열지 않고도 전체 라이브러리를 검색할 수 있습니다 — 같은 로컬 인덱스, 여러분의 조건대로.

Literature Radar와 함께: 발견 → 정리 → 전체 검색 가능

Literature Radar는 새 논문을 라이브러리에 계속 추가하고(Explore로 발견, Track으로 구독), Full-Library Search는 그 모든 논문 — 10년 된 고전이든 어제의 프리프린트든 — 을 즉시 질문할 수 있는 것으로 바꿉니다. 하나는 유입을 관리하고, 다른 하나는 검색을 담당합니다. 함께라면 루프가 완성됩니다.

시작하기

  1. PapersGPT 플러그인을 다운로드하고(Zotero 7+), 설치한 뒤 채팅 패널에서 Search entire library를 체크하세요.
  2. 자연어로 질문하세요 — 답에는 인용이 붙습니다.
  3. Full-Library Search는 모든 유료 플랜에 포함되어 있습니다. 신규 사용자는 무료 체험으로 먼저 사용해 볼 수 있습니다.

자주 묻는 질문

PDF가 서버로 업로드되나요?

아니요. 인덱싱과 검색은 전부 로컬에서 실행됩니다 — 위의 벤치마크도 외부 API 의존 없이 실행했습니다. PDF, 노트, 쿼리는 결코 머신을 떠나지 않습니다.

어느 정도 규모의 라이브러리까지 지원되나요?

100편부터 10,000+편까지 지원합니다. 공식 벤치마크는 1,000개 PDF(인덱싱 51.5 s)와 10,000개 PDF(인덱싱 7m 01s, 쿼리 19.5 ms)를 다룹니다. 인덱싱 비용은 대략 선형적으로 늘어나고, 쿼리 지연은 일정하게 유지됩니다.

Zotero 내장 전체 텍스트 검색과 무엇이 다른가요?

Zotero의 전체 텍스트 검색은 일치하는 항목 목록을 돌려주므로 하나씩 열어 확인해야 합니다. Full-Library Search는 문서를 넘나들며 종합한 답을 클릭 가능한 인용과 함께 돌려주고, 여러분의 주석과 노트까지 커버합니다.

내 언어로 질문할 수 있나요?

네. 질문 언어는 선택한 LLM을 따릅니다 — 중국어, 영어, 그 외 언어 모두 작동하며, 인덱스 자체는 어떤 언어의 전문이든 처리합니다.

완전히 오프라인에서도 작동하나요?

인덱싱과 검색은 작동합니다(순수하게 로컬입니다). 답 생성은 클라우드 모델(GPT, Claude, DeepSeek 등)을 고르면 네트워크가 필요하고, Ollama로 로컬 모델로 바꾸면 전체 루프가 오프라인으로 돌아갑니다.