Indicizzazione full-text intuitiva della riga di comando?


37

Esiste un motore di indicizzazione full-text, che può essere interrogato dalla riga di comando e idealmente non richiederebbe affatto l'uso di una GUI?

Sono particolarmente interessato all'indicizzazione dei miei e-book e documenti, quindi è un misto di pdf, epub e alcuni djvu. (Apri) I documenti di Office sarebbero belli, ma molto più in basso nella mia lista.


1
puoi essere più specifico su quale formato assume l'indice?
— ixtmixilix,

Buon punto, modificato.
— luglio

-1 Come indicato di seguito Lucene o Tracker sono buone scelte, ma qual è il tuo problema con "usa gtk, o peggio ancora qt"? Usare solo la riga di comando va bene, ma non vedo il punto di criticare una serie di librerie ...
— tra il

2
@tmow: punto preso, domanda modificata. Non intendevo minare il duro lavoro di nessuno, scusa se è così che è
— successo

Risposte:


11

Hai visto Lucene o Sfinge? Mentre dovrai inizialmente analizzare i documenti che vuoi indicizzare, una volta fatto, uno dei due può cercare dal cli.

Per Lucene, ci sono alcune informazioni su come farlo disponibile .

Sphinx, è un po 'più vago, ma c'è anche della documentazione disponibile . Puoi trasferire i dati XML strutturati di tua scelta alla sfinge tramite l'origine dati xmlpipe2.

Lucene si affida a Java, mentre Sphinx è costruito in C ++ senza dipendenze esterne necessarie.

O uno richiederà un po 'di lavoro per fare quello che vuoi, ma sembra una soluzione totalmente praticabile.


1
A parte questo, se vuoi indicizzare i dati che si trovano in un DB (postrgres, mysql), anche uno di questi funziona incredibilmente bene.
— gabe.

hmm, avevo scartato la sfinge per essere troppo di basso livello, ma guardando xmlpipe2 sembra uno script wrapper per pdf2txt o simili sarebbe abbastanza facile ...
— Julien

+1 per la menzione in Lucene. Ho passato dei bei momenti con Lucene, è roba da killer !!
— Nikhil Mulley,

Credo elasticsearch si basa su Lucene, e potrebbe essere più conveniente per l'uso (essere una cosa di più alto livello).
— entro il

5

controlla xapian . Ha un'interfaccia a riga di comando e può indicizzare molti formati.


xapian è un ottimo indice, il mio preferito personale, ed è scritto in C ++ nativo !. Qualcosa che usa xapian sarebbe l'ideale, per molti progetti che richiedono l'indicizzazione +1.
— JM Becker,


3

Il tracker può essere invocato dalla riga di comando e gtk + non è una dipendenza dura per un progetto (ma può essere per i pacchetti).


Bene, se non sbaglio, proverà comunque a tirare (gran parte di) lo gnomo come dipendenza.
— luglio

1
Come ho detto - progetto (nella versione 0.9.x almeno l'unica dipendenza effettiva di GNOME è glib). I pacchetti potrebbero compilare lo staff predefinito come GUI, quindi potrebbe essere necessario compilarlo manualmente.
— Maciej Piechotka,

3

Questa risposta consiglia di utilizzare la ricerca codici di Google ,

La ricerca codice è uno strumento per indicizzare e quindi eseguire ricerche di espressioni regolari su grandi corpi di codice sorgente.

I superutenti su Debian / derivati ​​possono provare: sudo apt-get install codesearch


1
questa risposta contiene alcuni dettagli sull'installazione dal sorgente; nel caso in cui non sia disponibile nei repository per il tuo sistema operativo: superuser.com/a/1263343/65975
— ccpizza

2

Attualmente ci sono due flussi di Tracker, stable (0.8) e unstable (0.9). Il tuo sistema operativo probabilmente ha la versione 0.8, quindi se puoi permetterti (ha alcune dipendenze software all'avanguardia ), vai a prendere l'ultimo tarfile (0.9.x). Ha molti miglioramenti rispetto allo 0,8 e attualmente è ulteriormente stabilizzato per essere 0,10 (i numeri pari rappresentano la stabilità). Se si sceglie di seguire questo percorso, utilizzare questo comando per configurare:

./configure --disable-tracker-needle --disable-tracker-preferences --disable-tracker-explorer --disable-tracker-status-icon

Probabilmente non avrai installato le dipendenze, quindi dovrebbe essere più semplice installare 0.8 dalla tua distribuzione ed evitare semplicemente i bit della GUI. Su Debian Squeeze, Ubuntu 10.10 e Ubuntu 11.04, questi sono ben suddivisi. Quindi ( come root ) esegui:

apt-get install --no-install-recommends tracker-utils tracker-miner-fs

Lo strumento CLI per questo è tracker-search, quindi eseguilo con l' --helpopzione per vedere come sfruttarlo :-)

note :

  • Su Fedora 14, il pacchetto Tracker ha dipendenze da GTK +. Immagino sia perché include cose come tracker-applete tracker-preferences. Hanno comunque un pacchetto separato pertracker-search-tool l'interfaccia di ricerca della GUI.
  • DjVu ed ePUB non sono (ancora) supportati. Ecco un elenco di ciò che è .

0

Ho lavorato alla stesura di uno strumento di ricerca full text (un nuovo apropos) per l'indicizzazione e la ricerca di pagine man per NetBSD quest'estate usando Sqlite3. È composto da due strumenti da riga di comando:

  • makemandb: che analizza e costruisce un indice del contenuto delle pagine man.
  • apropos: lo strumento per interrogare questo indice.

Puoi facilmente scrivere uno strumento simile per te stesso, per i pdf avrai bisogno di una libreria per l'analisi dei documenti pdf e allo stesso modo un'utilità per analizzare i documenti dell'ufficio aperto.

Puoi leggere di più sul progetto qui

Il codice è qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.