ABIS Infor - 2015-03

Windows 7 en 8 zoekverdriet

Peter Vanroose (ABIS) - 18 maart 2015

Samenvatting

Windows Verkenner laat toe om de harde schijf te doorzoeken naar bestanden, op basis van een deel van de bestandsnaam, of een trefwoord in de inhoud van het bestand. Zeer interessant en gemakkelijk in gebruik, maar... vind je wel altijd wat je zoekt? Een korte excursie door het Windows-zoeklandschap!

Een eenvoudige zoek-actie... of toch niet?

Als u in Windows 7 of Windows 8 de zoekfunctie van de Verkenner gebruikt, dan wachten u mogelijk een aantal verrassingen. Ten minste, als u weet welke bestanden zouden moeten verschijnen, en merkt dat de Verkenner er enkele niet gevonden heeft! Of als u de oude Zoek-Assistent (het hondje) van Windows XP gewoon was.

Probeer eens het volgende: navigeer met de Verkenner naar de bibliotheek "Documenten", maak daar een nieuw tekstbestand aan met de naam Abc.txt, en plaats in het bestand de volgende tekst: "Cursussen bij ABIS."

In het zoekvak rechtsboven typt u nu de twee letters ab. Na hooguit enkele seconden verschijnt het bestand in de getoonde lijst van gevonden bestanden (en mogelijk nog enkele andere bestanden natuurlijk). Ook het waarom is duidelijk: de twee letters "Ab" in de naam, en ook "AB" in de inhoud, worden uitdrukkelijk met geel gemarkeerd door de Verkenner.

Hernoem nu het bestand naar "Text-Abc.txt.gif". Het bestand wordt nog steeds gevonden (want de naam bevat "Ab"), maar niet langer omwille van de inhoud: de extensie ".gif" duidt op een binair bestand (al is dat in dit geval niet zo), en die worden in principe nooit doorzocht op inhoud door de zoekfunctie van de Verkenner.

En een verrassing ...

Hernoem nu het bestand naar "TextAbc.txt.gif". Verrassing: het bestand wordt niet meer gevonden! De naam moet dus niet alleen de letters "ab" bevatten, maar een "woord" in de naam van het bestand moet blijkbaar beginnen met "ab" (hoofdletter-ongevoelig, weliswaar). Hetzelfde geldt trouwens voor de inhoud: enkel woorden beginnend met "ab" worden gevonden. Verifieer dit zelf, b.v. door te zoeken naar "BIS" in tekstbestanden die het woord "ABIS" bevatten.

Geef het bestand terug de extensie .txt, en het wordt opnieuw gevonden, nu enkel omwille van de inhoud. Ook extensies .asc, .csv en nog enkele andere "tekst"-extensies werken. Probeer maar! Hernoem tenslotte naar TextAbc.txt.

Er kunnen nog redenen zijn, behalve de extensie, waarom een bestand dat nochtans een bepaald woord bevat, toch niet gevonden wordt. Rechts-klik het bestand TextAbc.txt, kies "Eigenschappen", klik bij Kenmerken op "Geavanceerd", en vink "Indexeren" af (tweede vinkje). Het bestand wordt plots niet meer gevonden: blijkbaar worden enkel bestanden met (1) de juiste extensie, en bovendien (2) het kenmerk "Indexeren" doorzocht op inhoud!

Merk verder nog op dat ook alle subfolders (en alles daaronder) doorzocht worden, vanaf het punt van waaruit het zoeken gestart wordt: Navigeren naar C:\ en een zoekterm typen, zal dus heel uw (eerste) harde schijf doorzoeken.

Meer zoekmogelijkheden

Het zoekvak van de Windows Verkenner biedt nog enkele extra mogelijkheden. Zo vindt zoekterm naam:Text enkel bestanden op basis van hun naam, niet meer op basis van hun inhoud. Nu het bestand weer verschijnt: zet z'n indexeer-kenmerk terug aan, zodat we opnieuw op inhoud kunnen zoeken.

Een tweede, gelijkaardige mogelijkheid is een zoekterm van de vorm inhoud:ab waardoor nu enkel op inhoud gezocht wordt. inhoud:BIS wordt nog steeds niet gevonden, maar inhoud:BI uiteraard wel: niet omwille van het woord "ABIS" maar omwille van het woord "bij".

Zoektermen kunnen eenvoudig gecombineerd worden, door ze allemaal in het zoekvak op te geven, gescheiden door een spatie. Zo wordt ons bestand b.v. gevonden met de gecombineerde zoekterm cursus naam:txt inhoud:ab
Inderdaad: de naam bevat wel degelijk een woord dat met "txt" begint, met name de extensie! Bemerk verder dat "combineren" betekent "reduceren": enkel indien alle zoektermen voldaan zijn, wordt het bestand gevonden. Zoeken op hetzij de ene hetzij de andere zoekterm kan echter ook: gebruik het woord "OF", dus b.v. inhoud:abis OF naam:doc

Bemerk dat het zoekvak verder geen verstand heeft van jokertekens ("wildcards") zoals b.v. een ster: meer zelfs, alle tekens behalve letters of cijfers worden genegeerd in het zoekvak. Typ bijvoorbeeld eens de zoekterm "-" (een koppelteken): niet alleen bestanden waarvan de naam een koppelteken bevat, maar echt alle bestanden worden getoond! Inderdaad: na het negeren van de leestekens blijft er "niets" over, dus alle bestanden waarvan de naam begint met de lege tekst, worden getoond...

Eigenlijk worden leestekens niet echt genegeerd, maar kunnen ze dienen om een dubbele zoekterm in twee opeenvolgende woorden op te geven: de gecombineerde zoekterm inhoud:abis inhoud:cursus vraagt naar bestanden met "ergens" beide woorden; maar de zoekterm inhoud:cursus-b-abis zoekt naar een woord beginnend met "cursus" dadelijk gevolgd door een woord beginnend met "b" en tenslotte een woord beginnend met "abis".

Naast "inhoud" en "naam" zijn er nog tientallen andere zoek-prefixen; experimenteer zelf maar met b.v. grootte:>20 of grootte:<=20 of gewijzigdop:vandaag of type:tekstdocument of kenmerken:16 (nl: "is folder") ...

Windows index

Zoeken op inhoud is dus bewust beperkt, om redenen van efficiëntie: niet de bestandsinhoud maar een globale index wordt doorzocht wanneer een zoekterm opgegeven wordt. Deze index bevat alle losse woorden van alle geïndexeerde bestanden (inhoud) en van bestandsnamen in alfabetische volgorde. Dit verklaart het snelle zoekresultaat van een zoekterm als inhoud:AB, zelfs in C:\ en het verklaart ook waarom alleen zoeken op woordbegin voorzien is. Deze index wordt automatisch bijgewerkt wanneer de inhoud van een geïndexeerd bestand of de naam van een bestand gewijzigd wordt. Verder kan deze index nog naar believen geconfigureerd worden: bekijk maar eens de "Indexeringsopties" (Configuratiescherm -> Alle onderdelen). Daar blijkt dat niet alle lokaties geïndexeerd zijn, en zie je ook welke bestandsextensies geïndexeerd worden voor inhoud en welke enkel voor "eigenschappen". Inhoud wordt dus geïndexeerd voor o.a. de extensies txt, csv, doc, docx, pdf, cmd, rtf, sql, xls en xlsx, maar b.v. niet voor de extensies exe, bmp, gif, jpeg, vnc of xyz (tenzij je dit zou aangepast hebben...)

Goed om weten

Uiteraard zal een zoekterm nooit een niet-geautoriseerd resultaat opleveren, zoals de inhoud van een bestand waarvoor je geen leesrechten hebt, of de naam van een bestand in een folder waarvoor je geen oplijst-rechten hebt.

Verder kun je, via de Mapopties van de Verkenner, bewust ook niet-geïndexeerde lokaties doorzoeken. Of bestanden doorzoeken die in een zip-archief zitten. Of verborgen bestanden vinden. Maar de inhoud van niet-geïndexeerde bestanden of bestanden met een verkeerde extensie worden nooit doorzocht...

Bemerk tenslotte nog, wat de index betreft, dat de opgenomen woorden "genormaliseerd" zijn, d.w.z.: accenten worden weggehaald en hoofdletters worden als kleine letters opgeslagen.

Voor de geïnteresseerden: de globale index die de Verkenner gebruikt, wordt bijgehouden in het systeembestand
C:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.edb

Alternatieve zoekmogelijkheden

Er bestaat andere programmatuur (naast de Windows-Verkenner) die toelaat om het bestandssysteem te doorzoeken. Een interessant alternatief heet SearchMyFiles, en is geschreven door Nir Sofer (zie http://nirsoft.net/). Deze fantastische software is vrij te gebruiken. De grafische interface bestaat uit twee vensters: één lijkt op de Verkenner, en zal de gevonden bestanden uitlijsten; het andere biedt u een massa zoek-opties. Belangrijkste pluspunt (vergeleken met de Verkenner) is de garantie dat alles wat je vraagt ook effectief gevonden wordt. Autorisatie-beperkingen blijven weliswaar gelden, dus enkel bestanden met leestoegang in folders met oplijst-toegang kunnen gevonden worden. Start desnoods SearchMyFiles op als beheerder. Belangrijkste minpunt (maar dat is dus een bewuste keuze) is de zoeksnelheid: vermits er geen index gebruikt wordt, en zeker wanneer je ook op inhoud wil zoeken, moet elk bestand inhoudelijk van begin tot einde gelezen worden. Telkens opnieuw, bij elke nieuwe zoekactie. Wanneer je echter bewust niet op inhoud zoekt, is SearchMyFiles echter verrassend snel, meestal zelfs sneller dan de Verkenner!

De mogelijke zoekopties spreken voor zich. Net zoals bij de Verkenner zorgen bijkomende ingevulde zoektermen voor een reductie van de vondsten. De zoek-criteria zijn duidelijk gerubriceerd: (1) zoeklokaties (inderdaad, eventueel meerdere); (2) bestandsnaam, deze keer met de mogelijkheid van jokertekens ("*"); (3) inhoud (naar keuze tekst, binair, of met jokertekens); (4) bestandsgrootte; (5) kenmerken of "attributes": alleen-lezen, verborgen, systeem, ...; (6) creatie-datum en wijzigingsdatum. Een veld niet invullen (of de "*" laten staan) betekent: geen beperking voor dat criterium.

Behalve Nir Sofer's software zijn er nog ontelbaar andere zoekprogramma's voor Windows, sommige zelfs niet-grafisch zoals "findstr" dat met Windows meegeleverd wordt. Het zou ons te ver leiden om hier verder op in te gaan.

Besluit

Een bestand terug vinden kan een hele uitdaging zijn. Soms zou je aan jezelf beginnen twijfelen, wanneer een bepaald bestand niet teruggevonden wordt. Hopelijk heeft deze tekst een tipje van de complexe zoek-sluier opgelicht, en verloopt een volgende zoek-actie met wat minder frustratie!

Referenties:

  1. http://windows.microsoft.com/nl-be/windows/improve-windows-searches-using-index-faq
  2. http://windows.microsoft.com/nl-be/windows-8/search-file-explorer
  3. http://windows.microsoft.com/nl-be/windows7/change-advanced-indexing-options
  4. http://windowssecrets.com/forums/showthread.php/157500-Windows-7-search-doesn't-find-text-strings
  5. http://nirsoft.net/utils/search_my_files.html