Eigenen Suchindex in Windows 10 erstellen

Gast #5883321
Ich habe eine CSV-Datei der Form

Dateiname;textinhalt

Die Datei Dateiname ist binär und kann nicht durchsucht werden.

Ich möchte in der Windows 10 - Suche Worte aus dem jeweiligen Textinhalt 
eingeben und im Ergebnis den Textinhalt sehen als auch einen Link auf 
die Datei, quasi meinen eigenen Index.

Wie mache ich das?
Gast
Profis nehmen dafuer eine Datenbank.

Aber doch nicht so etwas ao laecherlich unzuverlaessiges wie
die Windowssuche.

Binaere CSV-Dateien gibt es uebrigens nicht.
Entweder CSV (soll wohl Comma Separated Value) oder Binaer.
Gast
Man kann <textinhalt> als Attribut direkt zur Datei Packen. Ungetestet, 
aber NTFS kann das und die Windows Suche hoffentlich.


Ich würde nen richtigen Dateimanager nutzen. Der TotalCommander kann so 
etwas wenn man das passende Plugin dafür programmiert (spezielle 
individuelle Wünsche erfordern halt eine eigene Programmierung).
Lias Lindenau schrieb:
> Dateiname;textinhalt
>
> Die Datei Dateiname ist binär und kann nicht durchsucht werden.

Entweder handelt es sich um eine lesbare CSV-Datei oder eine Datei im 
Binärformat. Beides zusammen passt nicht.

Bei Windowssystemen sollte das Programm, das Deine Datei geschrieben 
hat, dem Betriebssystem eine Funktion zum Durchsuchen bereitstellen.

Stellt der Hersteller diese Funktion nicht bereit, bleibt nur noch 
Selberschreiben, wenn Du das Format der Datei kennst.
Gast
Peter M. schrieb:
> Wie meinen?

Er hat dich darauf hingewiesen das du die Aufgabenstellung nicht richtig 
verstanden hast.

Es handelt sich um binäre Dateien UND eine Textdatei (CSV) mit Metainfos 
zu diesen binären Dateien.
Die Textdatei soll von der Suche gelesen (und Durchsucht) werden. Und 
als Ergebnis sollen die Dateinamen der zutreffenden binären Dateien 
gelistet werden.
Danke an alle Übersetzer! :)

Ich glaube, dass die Microsoft-Suche dateiorientiert ist.

Das bedeutet, der Frager sollte die dateispezifischen lesbaren 
Informationen in der Textdatei in die Binärdatei packen.

Technisch könnte man das unter NTFS so realisieren, dass man diese 
Metainformationen in ein neues Attribut der Datei packt:

https://de.wikipedia.org/wiki/Alternativer_Datenstrom

Dann kann man nur noch hoffen, dass die Windowssuche auch anderen 
Attribute neben dem unbenannten Attribut "data" erfasst.

Kopiert man solche Dateien jedoch auf einen Datenträger ohne NTFS, gehen 
diese Zusatzinformationen verloren!
Lias Lindenau schrieb:
> Ich habe eine CSV-Datei der Form
>
> Dateiname;textinhalt
>
> Die Datei Dateiname ist binär und kann nicht durchsucht werden.
>
> Ich möchte in der Windows 10 - Suche Worte aus dem jeweiligen Textinhalt
> eingeben und im Ergebnis den Textinhalt sehen als auch einen Link auf
> die Datei, quasi meinen eigenen Index.
>
> Wie mache ich das?

Search IFilter implementieren:
https://docs.microsoft.com/en-us/windows/desktop/search/-search-ifilter-conceptual
Das Beispiel von der Seite findet sich hier 
https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/winui/WindowsSearch/IFilterSample
Gast
Kommt auf die Größe der Datei an.


Am einfachsten nimmst die die Programmiersprache deiner Wahl und liest 
die Datei zeilenweise ein. Splittest jede Zeile nach dem ersten Komma / 
Semikolon und durchsuchtst nur den zweiten Teil. Bei Treffer gibst Du 
den ersten Teil zurück.

Das geht z.B. mit wenigen Zeilen in C# (hier ein funktionsfähiges 
Beispiel ohne jede Fehlerbehandlung und ohne Prüfung der Parameter 
etc.):
1
static void Main(string[] args)
2
{
3
   using (TextReader tr = new StreamReader(@"C:\Tmp\Neues Textdokument.csv"))
4
    {
5
    string line;
6
    while ((line = tr.ReadLine()) != null)
7
      {
8
      string[] elements = line.Split(new char[] { ';' });
9
      if (elements[1].Contains(args[0]))
10
         {
11
            Console.WriteLine(elements[0]);
12
         }
13
      }
14
   }
15
}


Der Suchtext wird im obigen Beispiel einfach als 
Kommandozeilen-Parameter übergeben.


Man kann auch unter Windows die bash installieren und dann awk benutzen. 
Mache ich manchmal bei großen Dateien.


Anonsten die CSV-Datei in eine Datenbank einlesen oder als Fremdtabelle 
einbinden, z.B. mit PostgreSQL FDW. Geht natürlich auch mit Excel...
Gast
Arc N. schrieb:
> Search IFilter implementieren:
> 
https://docs.microsoft.com/en-us/windows/desktop/search/-search-ifilter-conceptual
> Das Beispiel von der Seite findet sich hier
> 
https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/winui/WindowsSearch/IFilterSample

Ich habe es installiert, die Erweiterung filtersample existiert, es 
sollen Eigenschaften und Dateiinhalte indiziert werden. Die Datei ist in 
einem indizierten Ordner.
Gebe ich dog im Cortana-Suchfeld ein, erscheint das Dokument nicht. 
Woran kann das liegen?
Lias Lindenau schrieb:
> Arc N. schrieb:
>> Search IFilter implementieren:
>>
> 
https://docs.microsoft.com/en-us/windows/desktop/search/-search-ifilter-conceptual
>> Das Beispiel von der Seite findet sich hier
>>
> 
https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/winui/WindowsSearch/IFilterSample
>
> Ich habe es installiert, die Erweiterung filtersample existiert, es
> sollen Eigenschaften und Dateiinhalte indiziert werden. Die Datei ist in
> einem indizierten Ordner.
> Gebe ich dog im Cortana-Suchfeld ein, erscheint das Dokument nicht.
> Woran kann das liegen?

Mal die Tests drauf losgelassen?
https://docs.microsoft.com/en-us/windows/desktop/search/-search-ifilter-testing-filters
bzw. dann an die Tests anhängen und Debuggen.
Anderer Fehler kann sein, dass in den Indizierungsoptionen (dort unter 
Erweitert und Dateitypen) schlicht nur eingestellt ist, dass bei der 
gewählten Dateiendung nur die Eigenschaften, aber nicht die Inhalte 
indiziert werden sollen.
Edit: U.U. kanns auch sein, dass die Indizierung neu angestoßen werden 
muss (net stop wsearch, net start wsearch

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.