„Google für Dateien“

A

andreas84

Grünschnabel
Hallo Leute,

ich bin schon Seit mehreren tagen auf der Suche nach einer Suchmaschine für Dateien. Ja, ja, ich weiss was ihr jetzt denkt! Aber ich brauche etwas besonderes:
Ich habe ca. 1000 Textdateien die von einem Programm in regelmäßigen Abständen abgeändert werden, klingt komisch, ist aber so (dies ist nur als Beispiel gedacht)! Wenn ich jetzt z.B. nach „Hund“ in den Dateien suchen lasse mach ich das mit find ... Was seine zeit brauch.

Ich möchte gerne einmal in der Nacht ein Suche über das Verzeichniss laufen lassen, das mir die Dateien Indexiert und z.B. eine search_index Tabelle in meine Datenbank anlegt. So das ich ganz bequem in meine DB nach schauen kann.

Kennt jemand solch ein Programm?

Gruß
Andreas
 
Wenn ich jetzt z.B. nach „Hund“ in den Dateien suchen lasse mach ich das mit find ... Was seine zeit brauch.
mit find? nicht mit grep? ich meine wo die dateien sind scheinst du ja zu wissen. hm, oder willst du einfach nur was "schnelleres" als find haben?
locate arbeitet mit einer datenbank, die man sich per cronjob einfach nachts updaten lassen könnte. allerdings sucht man dann nur in den dateinamen, nicht in den dateiinhalten.

also wenn du dateiinhalte nach stichwörtern durchsuchen willst, kann ich mir nichts schnelleres als einfach "grep -r suchwort /verzeichnis/der/dateien" vorstellen.
weil damit deine "datenbank" umfassend wäre müsste sie ja quasi alle dateien und deren inhalte enthalten. womit die durchsuchung dieser datenbank dann doch genausolange dauert wie die durchsuchung der einzelnen dateien, oder?

oder sollte dieses "google für dateien" irgendwie eine prioritätsverwaltung für informationen in den dateien mitbringen?
wie würde das aussehen?
hm, sry, dass ich dir nicht helfen kann. kommt bestimmt noch wer kompetentes reingeschneit.
 
Ähm, Leute?

So wie ich den TE verstehe, will der doch einen Volltext-Index.

Nichts von dem was hier bisher gepostet wurde, hat damit auch nur annähernd was zu tun. ( Oder kann Beagle das auch? IMHO nicht, lass mich aber gerne belehren)

@TE

Du könntest den Inhalt der Dateien entsprechend in Datenbanken verwursteln und darüber dann einen Volltext-Index legen.

Ist halt die Frage, ob das von dir erwähnte Programm damit umgehen kann.

Alternativ kannst du dir auch was eigenes stricken, z.B. mit Lucene.

Wenn noch anderen was einfällt, nur raus damit.....:-)
 
Ginge nicht auch ein
Code:
cat /verzeichnis/der/Dateien/* | grep suchwort
?
 
Ob es dafür eine fertige Software gibt, weiß ich nicht.
Allerdings würde ich da auch selbst etwas stricken.
Perl mit einem Hash-tee über alle gefundenen Wörter mit den Dateinamen als Wert.
Stellt sich aber die Frage wie groß das wird.
Du kannst natürlich auch mit SQLlight arbeiten, was enorm schneller als der dicke Brocken mysql ist.

Gruß Wolfgang
 
Hallo Zusammen,
supersucker, hat mich richtig verstanden. Ich brauche einen Volltext-Index oder so ähnlich.
Leider kann sind die zu durchsuchenden Daten Dateien, und liegen nicht irgendwie in der DB, was auch nicht gewollt ist.
Klar sind das nach der Indexierung eine Menge an Daten in der DB, aber dafür sind DBs da. Und ein späteres select auf "Hund" geht schneller als alle Dateien zu durchsuchen.

Suchmaschinen arbeiten doch genauso, vielleicht lässt sich ja eine open source Suchmaschine für Webseiten anpassen...
 
Ginge nicht auch ein
Code:

cat /verzeichnis/der/Dateien/* | grep suchwort

?

1.

Ist das cat da völlig unnötig.

2.

Liest du auch mal Threads mit bevor du antwortest?

Zum zweiten Mal jetzt
: Es geht um eine Volltext-Indizierung.

@andreas

Suchmaschinen arbeiten doch genauso, vielleicht lässt sich ja eine open source Suchmaschine für Webseiten anpassen...

->

Alternativ kannst du dir auch was eigenes stricken, z.B. mit Lucene.

Aber da musst du definitiv programmieren können, evtl. gibt es da auch noch was "user"-freundlicheres.
 
1.

@andreas

Aber da musst du definitiv programmieren können, evtl. gibt es da auch noch was "user"-freundlicheres.

supersucker, ich habe mir mal die Lucene Geschichte durchgelesen. Das Suchmaschinen-Framework hört sich nicht schlecht an. Damit werde ich mir mal ein kleines Testprogramm schreiben. - Danke
 
Seit wann kann ht://dig keine Volltextindizierung mehr?
 
@Bashgob

Als du dein Posting verfasst hast, hab ich synchron geschrieben.

-> die von dir genannte Alternative hab ich also zu dem Zeitpunkt nicht gesehen.
 
ht://dig schreibt seine Datenbank leider in eine Datei, wenn ich das richtig gesehen habe :-(

Irgendwo muß ht://dig ja sein Hirn ablegen. :winke: Kannst ja die Datenbank nach /dev/null schreiben lassen, dann dürften allerdings die Suchergebnisse dürftig ausfallen :erschlag:
 
Code:
grep foo **/*
k/a was daran zu langsam ist?
 
Nochmal zu Beagle: Bei mir hat es gerade bei einem spontanen Test auch Begriffe in Dateien gefunden.
 
Ich denke Beagle oder Pinot sollten da auch ihre Dienste tun... Aber ihr habt ja schon genug zusammengetragen :)
 
#Geht das nicht auf mit kfind?

Wenn ich jetzt "NO_IPV6" eingebe, findet er alle Dateien, welche "NO_IPV6" beinhalten.

und

grep foo **/*

k/a was daran zu langsam ist?

[ ] Ihr habt den Thread gelesen.

Aber für euch sag ich es gerne auch zum dritten Mal: Es geht hier um eine Volltext-Indizierung und weder grep noch find haben damit auch nur das Geringste zu tun.
 
Zuletzt bearbeitet:
Es geht hier um eine Volltext-Indizierung und weder grep noch find haben damit auch nur das Geringste zu tun.
ne aber der Vorschlag von Wolfgang ist ganz gut, das mit Perl zu machen. Man hat dann einen Hash und kann in dem Moment damit machen,was man will, sogar Textdateien erzeugen, die heißen wie das Suchwort und im Inhalt eine Liste der Fundstellen. Oder eine intdex.txt mit Feldtrennern, wo im ersten Feld das Wort kommt und dahinter auch getrennt die Fundstellen.

Oder über das MySQL-Interface von Perl gleich beim finden in eine Datenbank pumpen. Die Textdateien-Idee fürt ja zu einem riesigen weiteren Textberg, der dann wieder durchsucht werden müßte.

Mit Perl könnte man noch viel mehr machen, nämlich Wörter zählen. Oder Zeilenangabe der Fundstelle(n) in einzelnen Dateien. Dann hätte man einen Datenbank-Eintrag mit dem Wort, dahinter eine Datei, dahinter Fundstelle(n), dahinter nächste Datei...

Das wären so Spinnereien, die mir spontan durch den Kopf gehen.

An htdig hatte ich auch schon gedacht, kennt man z.B. von SuSE, wo damit das Hilfesystem indiziert wurde / wird (?). Das dauert auch, es zu rebuilden, aber das macht man ja selten und kann dann ganz gut suchen.
 

Ähnliche Themen

Sehr große Datei in Teilschritten auslesen.

Server-Monitoring mit RRDTool

Zurück
Oben