SEARCH
& DESTROY

hackmeeting · 2026

Motori di ricerca per

piccole collezioni

strumenti e tecniche, ed esempi

+fravia ❤️

alt text

https://fravia.deadbsd.org/search.lores.eu/basic.html

I motori di ricerca

nel caos della rete

https://archive.org/details/i-motori-di-ricerca
https://grafton9.net/blog/02/

copertina

alt text

Introduction to Information Retrieval
https://nlp.stanford.edu/IR-book/

alt text

Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze, Introduction to Information Retrieval, Cambridge University Press. 2008.

Zone Digitali

https://grafton9.net/zone-digitali
https://archive.org/details/ZoneDigitali

alt text
alt text

alt text
https://pagefind.app
https://github.com/pagefind/pagefind

./pagefind --site {html_root}

Italian Tapes Archive

https://www.youtube.com/@ITALIANTAPESARCHIVE

https://archivio.network/italian-tapes-archive/

alt text

Italian Tapes Archive

https://grafton9.net/italian-tapes-archive

Primo approccio. Anonimo, nessuna dipendenza. Limitato.

https://github.com/yt-dlp/yt-dlp

yt-dlp --flat-playlist \
       --print-to-file '{"title":%(title)j,"url":%(url)j,"thumbnail":%(thumbnails.-1.url)j}' \
       data.jsonl \
       https://www.youtube.com/@ITALIANTAPESARCHIVE/videos

Italian Tapes Archive

https://archivio.network/italian-tapes-archive/

Uso delle API Google https://googleapis.github.io/google-api-python-client/
e Pagefind https://pagefind.app/docs/py-api/

from googleapiclient.discovery import build
from pagefind.index import PagefindIndex, IndexConfig



youtube = build("youtube", "v3", developerKey=API_KEY)
youtube.playlistItems().list()
...
config = IndexConfig(output_path="./pagefind")
async with PagefindIndex(config=config) as index:

FanziNET

https://paolopalmacci.it/capitmundi/fanzinet.html

https://paolopalmacci.it/capitmundi/search/

fanzinet

FanziNET

curl -s https://paolopalmacci.it/capitmundi/blog_fanzine_elenco.html \
  | pup 'a attr{href}' \
  | grep blog_fanzine \
  | awk '{print "https://paolopalmacci.it/capitmundi/"$1}'

https://paolopalmacci.it/capitmundi/blog_fanzine_115_220.html
https://paolopalmacci.it/capitmundi/blog_fanzine_40_linee_di_darkene.html
https://paolopalmacci.it/capitmundi/blog_fanzine_50.html
https://paolopalmacci.it/capitmundi/blog_fanzine_511.html
curl -s https://paolopalmacci.it/capitmundi/blog_fanzine_la_lega_dei_furiosi.html \
| pup 'a attr{href}' \
| grep docs
docs/la_lega_dei_furiosi_1_fanzine.pdf
docs/la_lega_dei_furiosi_2_fanzine.pdf
docs/la_lega_dei_furiosi_3_fanzine.pdf
docs/la_lega_dei_furiosi_depliant_1993_fanzine.pdf

alt text

https://github.com/ocrmypdf/OCRmyPDF

alt text

https://solr.apache.org/

"docs":[{
      "id":"komakino_5_fanzine",
      "title_s":"komakino 5",
      "content_txt":["Dunque\n\nMUSIC PRESS\nFUCK OFF\n\nViva la stampa la radio\n\n© le persone libore da\n\nogni intoresss o influo\n\n022 del..."],
      "_version_":1856746843676868608,
    }

L'archiv((i))o di Indymedia Italia

74 GB di file WARC (webarchive), crawl di autistici.org del 2021.
copia di archivio disponibile su https://archive.autistici.org

Estrazione del testo dai warc e indicizzazione in Apache Solr

https://italy.indymedia.org

alt text

Tools

recoll https://recoll.org

rga https://github.com/phiresky/ripgrep-all

SearXNG https://docs.searxng.org

hister

https://hister.org

./hister listen

./hister import-browser firefox

./hister index -r https://it.hackmeeting.org

☢️ https://hister.org/docs/browser-extension ☢️

https://grafton9.net

void@grafton9.net

https://grafton9.net/talks/hackmeeting2026

<div class="rule"></div>

<div class="rule"></div>

## OCRmyPDF