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.