Full-Library Search w Zotero — test: 10,000 PDF-ów zaindeksowanych w 7 minut, odpowiedzi w 19.5 ms

Twoja biblioteka Zotero zawiera setki — może dziesiątki tysięcy — PDF-ów. „Pamiętam, że w mojej bibliotece był artykuł dokładnie o tym"… i co dalej? Grzebanie w tagach, sortowanie po roku, zgadywanie słów kluczowych. Dziesięć minut później wciąż szukasz. Wbudowana wyszukiwarka Zotero znajdzie pozycję, ale nie odpowie na pytanie — a już na pewno nie zestawi za Ciebie wniosków z 50 publikacji.

Full-Library Search w PapersGPT powstała właśnie po to: zaznacz jedno pole, a cała biblioteka staje się bazą wiedzy, do której zadajesz pytania w języku naturalnym — dostajesz bezpośrednie odpowiedzi z klikalnymi cytowaniami, a nie listę publikacji do otwarcia.

W tym poście zero teorii — tylko trzy rzeczy: dane z benchmarku, jak z tego korzystać i gdzie to daje najwięcej.

Najpierw liczby: 10,000 PDF-ów, nadal 19.5 ms

Oficjalny benchmark objął pełne testy indeksowania i odpytywania przy dwóch rozmiarach biblioteki (dane z otwartego repozytorium, 2.7k+ stars):

Metryka 1,000 PDF-ów 10,000 PDF-ów
Dane surowe 4.2 GB 42 GB (~170k pages)
Czas indeksowania 51.5 s 7m 01s
Średni czas zapytania 13.1 ms 19.5 ms
Pamięć (RSS) 353 MB 2.21 GB
Rozmiar indeksu 100 MB 901 MB

Trzy liczby, które warto zapamiętać:

  • 10× większa biblioteka, +6.4 ms na zapytanie. 13.1 ms → 19.5 ms — mniej niż jedna sieciowa podróż w obie strony w przeglądarce. W codziennym użyciu wyszukiwanie wśród 100 publikacji nie różni się odczuciem od wyszukiwania wśród 10,000.
  • 170,000 stron w 7 minut — koszt jednorazowy. To około 400 stron na sekundę. Po indeksowaniu każde zapytanie pozostaje w zakresie milisekund, a nowo dodane publikacje są indeksowane przyrostowo. Bez przebudowy.
  • 42 GB surowych PDF-ów kompresuje się do indeksu o rozmiarze 901 MB (~2%) — dlatego wszystko to spokojnie działa na zwykłym laptopie.

Jak to działa

Full-Library Search nie wysyła Twoich PDF-ów do czyjejś chmury — wszystko dzieje się na Twojej maszynie:

  1. Natywny silnik C++. Rdzeń indeksowania i wyszukiwania jest napisany w C++ — tej samej klasie języków, którą używają silniki baz danych i systemy transakcyjne — bez narzutu interpretera Python/Node na gorącej ścieżce wyszukiwania.
  2. Indeksowanie strukturalne, a nie „rozmyte" wektorowe wyszukiwanie semantyczne. Silnik rozumie strukturę dokumentu (gdzie są tytuł, sekcje, abstrakt i bibliografia) i łączy ją z rankingiem pełnotekstowym BM25 — tym samym modelem rankingu, na którym opierają się nowoczesne wyszukiwarki; dla trafności tekstu naukowego jest znacznie pewniejszy niż generyczne dopasowanie wektorowe.
  3. Zero rundtripów sieciowych. Brak kolejek uploadu, brak indeksowania po stronie serwera, brak opóźnień API. Prędkość, którą widzisz, to prędkość Twojej maszyny.

Z perspektywy użytkownika: cztery scenariusze, które się opłacają

1. Pisanie Related Work: niech 50 publikacji ustawi się w kolejce

„Które publikacje w mojej bibliotece używają transformerów do prognozowania szeregów czasowych i z jakimi baseline'ami je porównują?"

Full-Library Search przeczesuje całą bibliotekę, klasyfikuje według trafności i syntetyzuje — za każdym twierdzeniem stoi cytowanie, które przenosi prosto do źródła. Ty tylko weryfikujesz, zamiast szukać.

2. Odnalezienie „tej publikacji, której tytułu nie pamiętam"

„Kilka miesięcy temu czytałem coś o łagodzeniu halucynacji za pomocą danych syntetycznych — chyba niemiecka grupa."

Tytuł niepotrzebny; opisz zawartość. Wyszukiwanie obejmuje tytuły, autorów, tagi, abstrakty oraz Twoje własne adnotacje i notatki w Zotero — notatka na marginesie zapisana wtedy to najlepsze zapytanie, jakie możesz dziś wpisać.

3. Sprawdzanie sprzecznych dowodów: polisa przed obroną

Zaawansowaną formą tego jest Global Library Synthesis: analiza do 10,000+ dokumentów jednocześnie, by mapować trendy badawcze, ewolucję terminologii i — co najważniejsze — sprzeczne wnioski. „Jakie dowody za i jakie przeciw zawiera moja biblioteka na temat efektu X?" Pytanie, które ręcznie zajęłoby tydzień, tutaj zajmuje minuty.

4. Dziesięć minut przed spotkaniem zespołu

„Pogrupuj publikacje w mojej bibliotece o tym biomarkerze według wielkości próby, od największej, i podsumuj każdą grupę."

Odpowiedź ląduje w oknie czatu — do skopiowania, do zapisania jako notatka Zotero, z każdym cytowaniem do prześledzenia.

Czym się to różni od wbudowanej wyszukiwarki Zotero

Wbudowana wyszukiwarka Zotero Full-Library Search w PapersGPT
Zwraca Listę pozycji Bezpośrednie odpowiedzi + klikalne cytowania
Synteza między dokumentami ❌ ✅ Porównania między publikacjami, analiza sprzecznych dowodów
Styl zapytania Dopasowanie słów kluczowych Język naturalny (dowolny język)
Zakres Metadane + indeks pełnotekstowy Pełny tekst + Twoje adnotacje i notatki
Typowe opóźnienie Sekundy ~19.5 ms do wyniku
Podsumowania ❌ ✅ Napędzane przez 30+ LLMs

Uzupełniają się wzajemnie: wyszukiwarka Zotero znajduje pozycję; Full-Library Search daje Ci odpowiedź.

Prywatność: działa w trybie samolotowym

Indeksowanie i wyszukiwanie w 100% lokalnie, bez zależności od API w chmurze. W praktyce:

  • Przyjazny trybowi samolotowemu: wyszukiwanie i indeksowanie działają w pełni offline.
  • Zero wycieków bajtów: Twoje PDF-y, notatki, adnotacje i zapytania nigdy nie opuszczają Twojej maszyny.
  • W pełni offline'owy przepływ pracy: połącz go z modelem lokalnym przez Ollama (lub wbudowane pobieranie modeli open source jednym kliknięciem) i cała pętla — od pytania do odpowiedzi — działa bez sieci. Idealne dla nieopublikowanych danych, wewnętrznych badań firmowych i prac wrażliwych na zgodność (compliance).

Jeśli chcesz podpiąć całą bibliotekę do Claude Code, Cursor i podobnych agentów, Zotero MCP Server przeszuka pełną bibliotekę bez otwierania Zotero — ten sam lokalny indeks, na Twoich warunkach.

Połącz z Literature Radar: odkryj → zapisz → przeszukuj

Literature Radar nieustannie dodaje nowe publikacje do Twojej biblioteki (Explore do odkrywania, Track do subskrybowania), a Full-Library Search zamienia każdą z nich — dziesięcioletnią klasykę czy wczorajszy preprint — w coś, o co możesz pytać od razu. Jeden zarządza napływem, drugi wyszukiwaniem. Razem domykają pętlę.

Pierwsze kroki

  1. Pobierz wtyczkę PapersGPT (Zotero 7+), zainstaluj ją i zaznacz Search entire library w panelu czatu.
  2. Pytaj językiem naturalnym — odpowiedzi przychodzą z cytowaniami.
  3. Full-Library Search jest wliczona w każdy płatny plan; nowi użytkownicy mogą najpierw wypróbować ją przez bezpłatny okres próbny.

FAQ

Czy moje PDF-y są wysyłane na serwer?

Nie. Indeksowanie i wyszukiwanie działają w całości lokalnie — powyższy benchmark uruchomiono bez jakiejkolwiek zależności od zewnętrznego API. Twoje PDF-y, notatki i zapytania nigdy nie opuszczają Twojej maszyny.

Jaki rozmiar biblioteki jest obsługiwany?

Od 100 do 10,000+ publikacji. Oficjalny benchmark obejmuje 1,000 PDF-ów (51.5 s indeksowania) i 10,000 PDF-ów (7m 01s indeksowania, 19.5 ms zapytania). Koszt indeksowania rośnie w przybliżeniu liniowo; opóźnienie zapytań pozostaje stałe.

Czym to się różni od wbudowanego wyszukiwania pełnotekstowego Zotero?

Wyszukiwanie pełnotekstowe Zotero zwraca listę trafień, które musisz otwierać i sprawdzać pojedynczo. Full-Library Search zwraca zsyntetyzowaną odpowiedź w poprzek dokumentów, z klikalnymi cytowaniami, obejmując też Twoje adnotacje i notatki.

Czy mogę zadawać pytania w swoim języku?

Tak. Język pytania zależy od wybranego LLM — chiński, angielski i inne działają; sam indeks obsługuje pełny tekst w każdym języku.

Czy działa w pełni offline?

Indeksowanie i wyszukiwanie tak (czysto lokalnie). Generowanie odpowiedzi wymaga sieci, jeśli wybierzesz model w chmurze (GPT, Claude, DeepSeek itd.); przełącz się na model lokalny przez Ollama, a cała pętla działa offline.