Befehlszeilenfreundliche Volltextindizierung?

37

Gibt es eine Volltext-Indizierungs-Engine, die über die Befehlszeile abgefragt werden kann und im Idealfall keine GUI erfordert?

Ich bin besonders an der Indizierung meiner E-Books und Papers interessiert, das ist also eine Mischung aus PDF, Epub und ein paar DJVUs. (Open) Office-Dokumente wären nett, aber viel niedriger auf meiner Liste.

julien
quelle
1
Können Sie genauer sagen, in welchem ​​Format der Index vorliegt?
ixtmixilix
Guter Punkt, bearbeitet.
Juli
-1 Wie weiter unten erwähnt, sind Lucene oder Tracker eine gute Wahl, aber was ist Ihr Problem mit "use gtk oder noch schlimmer qt"? Es ist in Ordnung, nur die Befehlszeile zu verwenden, aber ich sehe keinen Sinn darin, eine Reihe von Bibliotheken zu kritisieren ...
tmow
2
@tmow: Punkt genommen, Frage bearbeitet. Wollte nicht die harte Arbeit von irgendjemandem untergraben, tut mir leid, wenn es so gekommen ist ...
Julien

Antworten:

11

Hast du dir Lucene oder Sphinx angesehen? Während Sie zunächst die zu indizierenden Dokumente analysieren müssen, können Sie anschließend über die Benutzeroberfläche nach Dokumenten suchen.

Für Lucene, gibt es einige Informationen über dieses tun zur Verfügung .

Sphinx, ist ein bisschen vage, aber es gibt auch einige Dokumentation zur Verfügung . Sie können strukturierte XML-Daten Ihrer Wahl über die Datenquelle xmlpipe2 an sphinx übergeben.

Lucene verlässt sich auf Java, während Sphinx in C ++ erstellt wird und keine externen Abhängigkeiten benötigt werden.

Entweder erfordert man ein wenig Arbeit, um das zu tun, was man will, aber es scheint eine vollkommen praktikable Lösung zu sein.

gabe.
quelle
1
Nebenbei bemerkt, wenn Sie Daten indizieren möchten, die sich in einer Datenbank befinden (postrgres, mysql), dann funktioniert auch beides unglaublich gut.
gabe.
hmm, ich hatte sphinx als zu niedrig abgetan, aber wenn man sich xmlpipe2 ansieht, scheint es, als wäre ein Wrapper-Skript für pdf2txt oder ähnliches ziemlich einfach ...
Julien
+1 für die Erwähnung in Lucene. Ich hatte gute Zeiten mit Lucene, es ist ein mörderisches Zeug !!
Nikhil Mulley
Ich glaube , Elasticsearch auf Lucene basiert, und auch bequemer zu verwenden (eine höhere Ebene , was zu sein).
offby1
5

Besuche xapian . Es verfügt über eine Befehlszeilenschnittstelle und kann eine Vielzahl von Formaten indizieren.

Michał Šrajer
quelle
xapian ist ein großartiger Index, mein persönlicher Favorit, und er ist in nativem C ++! geschrieben. Etwas, das xapian verwendet, ist ideal für viele Projekte, bei denen eine Indexierung von +1 erforderlich ist.
JM Becker
4

Recoll kann ohne GUI erstellt werden und durchsucht Ihre Dokumenttypen über die Befehlszeile.

Es verwendet Xapian unter der Haube.

user2391635
quelle
3

Tracker kann über die Befehlszeile aufgerufen werden und gtk + ist keine feste Abhängigkeit für ein Projekt (kann aber für Pakete sein).

Maciej Piechotka
quelle
Nun, wenn ich mich nicht irre, wird es immer noch versuchen, (große Teile von) Gnome als Abhängigkeit zu ziehen.
Julien
1
Wie gesagt - project (in Version 0.9.x ist zumindest die einzige harte GNOME-Abhängigkeit glib). Pakete kompilieren möglicherweise die Standard-Mitarbeiter wie die grafische Benutzeroberfläche, sodass Sie sie möglicherweise manuell kompilieren müssen.
Maciej Piechotka
3

In dieser Antwort wird die Verwendung der Google- Codesuche empfohlen .

Die Codesuche ist ein Tool zur Indizierung und anschließenden Suche nach regulären Ausdrücken über große Teile des Quellcodes.

Superuser auf Debian / Derivaten können versuchen: sudo apt-get install codesearch

joeytwiddle
quelle
1
Diese Antwort enthält einige Details zur Installation von der Quelle; in Fall ist es in repos für Ihr Betriebssystem nicht zur Verfügung: superuser.com/a/1263343/65975
ccpizza
2

Derzeit gibt es zwei Tracker-Streams: Stable (0,8) und Unstable (0,9). Ihr Betriebssystem wahrscheinlich hat die 0,8 - Version, also wenn Sie es sich leisten können (es hat einige bleeding edge Software - Abhängigkeiten), die neueste tarfile (0.9.x) unterwegs zu greifen. Es hat viele Verbesserungen gegenüber 0,8 und wird derzeit weiter stabilisiert , um 0,10 zu erreichen (gerade Zahlen stehen für Stabilität). Wenn Sie diese Route wählen, verwenden Sie diesen Befehl, um Folgendes zu konfigurieren:

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

Wahrscheinlich werden Sie die Abhängigkeiten nicht installiert haben, daher sollte es einfacher sein, 0.8 von Ihrer Distribution zu installieren und nur die GUI-Bits zu vermeiden. Unter Debian Squeeze, Ubuntu 10.10 und Ubuntu 11.04 sind diese Teile gut aufgeteilt. Also ( als root ) ausführen:

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

Das CLI-Tool hierfür ist tracker-search, führen Sie es mit der --helpOption aus, um zu sehen, wie Sie es nutzen können :-)

Notizen :

  • Auf Fedora 14 hat das Tracker-Paket Abhängigkeiten von GTK +. Ich denke, es liegt daran, dass es Dinge wie tracker-appletund enthält tracker-preferences. Sie haben jedoch ein separates Paket für tracker-search-tooldie GUI-Suchoberfläche.
  • DjVu und ePUB werden (noch) nicht unterstützt. Hier ist eine Liste dessen, was ist .
Tshepang
quelle
0

Ich habe in diesem Sommer ein Volltextsuchwerkzeug (ein neues Apropos) für die Indizierung und Suche von Manpages nach NetBSD mit Sqlite3 geschrieben. Es besteht aus zwei Befehlszeilentools:

  • makemandb: Das analysiert und erstellt einen Index des Inhalts von Manpages.
  • apropos: Das Tool zum Abfragen dieses Index.

Sie können auch ein ähnliches Tool für sich selbst schreiben. Für PDFs benötigen Sie eine Bibliothek zum Parsen von PDF-Dokumenten sowie ein Hilfsprogramm zum Parsen der Open Office-Dokumente.

Sie können mehr über das Projekt lesen Sie hier

Der Code ist hier

Abhinav Upadhyay
quelle