Jei Spotlight neranda kai kurių failų, kurie tikrai yra Mac
Kai kurie „Mac“ naudotojai gali susidurti su situacija, kai „Spotlight“ paieška „Mac“ kompiuteryje neberanda failų, kurie tikrai jame yra, ir ne tik jų ieškant pagal tekstą jų turinyje, bet net ir ieškant pagal pavadinimą.
Aš neseniai susidūriau su situacija, kai viename mano „Mac“ nustojo korektiškai veikti „Spotlight“ paieška. Taip pat tik dalinai veikė paieška ieškant tam tikrų failų pagal žodžius jų turinyje „Finder“ aplikacijoje. Tai atrodė kiek keista ir netikėta, nes paieška kaip ir veikė, tačiau tik dalinai.
Aš aplikacijas, kurių nesu išsikėlęs į „macOS“ Dock'o juostą, dažniausiai atidarau „Spotlight“ pagalba. Vieną dieną pastebėjau, kad įvedus aplikacijos pavadinimą, kurį vesdavau šimtus kartų, „Spotlight“ man siūlo tos aplikacijos paminėjimą internete, tačiau pačios aplikacijos, esančios „Mac“ man nesiūlo. Keista ir tai, kad įvedus kitos, šalia esančios aplikacijos pavadinimą, „Spotlight“ iš karto tą aplikaciją parodydavo. Panaši situacija buvo ir ieškant per „Finder“ aplikaciją. Vieni dokumentai su ieškomu tekstu būdavo surasti, o kiti – ne, ir panašu, kad staiga atsirado aplankų, kuriuose paieška tiesiog nebūdavo vykdoma ir informacija juose nebuvo indeksuojama. Tie aplankai nebuvo nei įtraukti į „Spotlight“ išimtis, nei kaip nors kitaip paslėpti.
Panašu, kad tokią situaciją „pastebėjo“ ir pati „Spotlight“, nes dažniau nei įprastai inicijuodavo informacijos indeksavimą. Tačiau, jos pastangos buvo bevaisės. Aplankų įkėlimas į „Spotlight“ išimtis ir paskui panaikinimas iš išimčių sąrašo arba nepadėdavo, arba padėdavo neilgam.
Galiausiai, rodos, radau sprendimą, kuris panaikino problemą ir jos nėra jau kuris laikas. Todėl nusprendžiau sprendimu pasidalinti, jei kartais susidurtumėte su tokia problema.
Sprendžiam Spotlight indeksavimo problemą
Norint išspręsti „Spotlight“ indeksavimo ir tik dalinai vykstančios paieškos problemą stvėriausi „Teminal“ aplikacijos.
Žemiau patektas komandas galima vesti kaip po vieną (kiekviena sudo prasidedanti eilutė yra atskira komanda), taip ir visas komandas susirašyti į vieną bash failą ir paleisti iš karto. Man antrasis variantas pasirodė patogesnis, bet skirtumo nėra.
Komandos vykdomos naudojant sudo, todėl įvedus pirmąją komandą reikės nurodyti kompiuterio administratoriaus slaptažodį, kurį vedant nematysite nei ką rašote, nei kad rašote. Įvedę slaptažodį spauskite return ⏎ ir komanda bus pradėta vykdyti.
5-toje žemiau esančių komandų eilutėje yra komanda nurodanti „Mac“ kompiuterio pagrindinį diską. Jei jūs jį užvadinę kitaip – pakeiskite komandą atitinkamai. 6-toje eilutėje įdėjau pavyzdį į išorinį USB diską, jei tokį naudojate ir norite, kad „Spotlight“ jame esančią informaciją suindeksuotų – įveskite ir jį.
Kelius į aplankus ar diskus, kuriuose yra tarpų, geriau apgaubkite kabutėmis. Taip išvengsite poreikio dėti \ prieš kiekvieną tarpą (bet jei jums patogiau – galite rašyti ir taip: /Volumes/My\ Passport\ HDD/).
Problemos sprendimas susideda iš dviejų etapų: pirmas – nurodymas „Spotlight“ išmesti iš savo duomenų bazės tam tikras direktorijas ir antro - nurodymas „Spotlight“ išmestas direktorijas vėl suindeksuoti.
Pirmasis etapas:
sudo mdutil -X /
sudo mdutil -X /System/Volumes/Data
sudo mdutil -X /System/Volumes/Preboot
sudo mdutil -X /Applications
sudo mdutil -X "/Volumes/Macintosh HD/"
sudo mdutil -X "/Volumes/My Passport HDD/"
Vykstant pirmojo etapo komandas „Terminal“ aplikacijos lange galite matyti informaciją - ištrinta xxx failų – neišsigąskite, tai informacija apie tai, kelių failų informacija ištrinta „Spotlight“ duomenų bazėje. Failai jūsų diske(-uose) nėra trinami ar kaip nors kitaip keičiami.
Antrasis etapas - vykdomas kai pirmasis užbaigtas.
sudo mdutil -i on /
sudo mdutil -i on /System/Volumes/Data
sudo mdutil -i on /System/Volumes/Preboot
sudo mdutil -i on /Applications
sudo mdutil -i on "/Volumes/Macintosh HD/"
sudo mdutil -i on "/Volumes/My Passport HDD/"
Atlikus šiuos veiksmus „Spotlight“ pradės indeksuoti informaciją. Kiek laiko truks indeksavimas priklauso nuo to kiek failų yra jūsų kompiuteryje ir, jei nurodėte, išoriniuose diskuose.
Jei vis tik aukščiau pateiktas metodas nesuveikė – pabandykite modifikuotą jo variantą, kuriame reikės įvesti papildomas komandas prieš etapus ir pabaigoje:
csrutil disable
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo mdutil -X /
sudo mdutil -X /System/Volumes/Data
sudo mdutil -X /System/Volumes/Preboot
sudo mdutil -X /Applications
sudo mdutil -X "/Volumes/Macintosh HD/"
sudo mdutil -X "/Volumes/My Passport HDD/"
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo mdutil -i on /
sudo mdutil -i on /System/Volumes/Data
sudo mdutil -i on /System/Volumes/Preboot
sudo mdutil -i on /Applications
sudo mdutil -i on "/Volumes/Macintosh HD/"
sudo mdutil -i on "/Volumes/My Passport HDD/"
csrutil enable
Palaukite kol „Spotlight“ suindeksuos informaciją. Dabar viskas turėtų vėl veikti taip kaip numatyta.