Spotlight! Apple Search Technology

 

Basics

 

Components Spotlight, by Apple Other
Backend (database, tools)
  • Database with indexed contents
  • Tools for creating / maintaining index db, et c
Frontend (search, present)
  • Spotlight application (command+Space)
  • msl
Frontend alternatives

 

Infos

  1. Tracker: https://gnome.pages.gitlab.gnome.org/tracker/
  2. DocFetcher: https://sourceforge.net/projects/docfetcher/
  3. Recoll: https://www.lesbonscomptes.com/recoll/
  4. Solr: https://solr.apache.org
  5. Regain: http://regain.sourceforge.net
  6. “Tracker 3.0: Where do we go from here?” by Sam Thursfield: https://samthursfield.wordpress.com/2020/11/05/tracker-3-0-where-do-we-go-from-here/
  7. SPARQL 1.1 Overview: https://www.w3.org/TR/sparql11-overview/
  8. Tracker CLI documentation: https://gnome.pages.gitlab.gnome.org/tracker/docs/commandline/
  9. Nepomuk: https://nepomuk.semanticdesktop.org
  10. Tracker Ontology Reference Manual: https://developer-old.gnome.org/ontology/stable/
  11. DocFetcher Pro: https://docfetcherpro.com/features/
  12. Xapian: https://xapian.org

 

 

Command Line, man pages, …

mds Command

MDS(8)                      System Manager's Manual                     MDS(8)

NAME
     mds – metadata server

SYNOPSIS
     mds

DESCRIPTION
     mds is the metadata server.  It serves all clients of the metadata APIs,
     including Spotlight.

     There are no configurations to mds, and users should not run mds
     manually.

SEE ALSO
     mdfind(1), mdls(1), mdutil(1)

Mac OS X                       January 19, 2006                       Mac OS 

 

mdfind Command

Extract from man page:

mdfind(1)                   General Commands Manual                  mdfind(1)

NAME
     mdfind – finds files matching a given query

SYNOPSIS
     mdfind [-live] [-count] [-onlyin directory] [-name fileName] query

DESCRIPTION
     The mdfind command consults the central metadata store and returns a list
     of files that match the given metadata query. The query can be a string
     or a query expression.

     The following options are available:
...
  • google.com/search?q=using+mdfind
  • mdfind 'search!' Command
    • macos:~ joe mdfind kind:folder -name 'search!'
      2023-05-16 18:06:12.227 mdfind[55946:6186246] [UserQueryParser] Loading keywords and predicates for locale "en_US"
      2023-05-16 18:06:12.227 mdfind[55946:6186246] [UserQueryParser] Loading keywords and predicates for locale "en"
      /Users/joe/Library/CloudStorage/Dropbox/Research!/IT/Apps! Applications! macOS/Desktop search!
      /Users/joe/Library/CloudStorage/Dropbox/Research!/IT/Search!! Finding stuff
      /Users/joe/Library/CloudStorage/Dropbox/Research!/IT/Search!! Finding stuff/Search! different types of search implementations terms autocomplete contextual
      macos:~ joe$ 

mdls Command

Extract from man page:

MDLS(1)                     General Commands Manual                    MDLS(1)

NAME
     mdls – lists the metadata attributes for the specified file

SYNOPSIS
     mdls [-name attributeName] [-raw [-nullMarker markerString]] file ...

DESCRIPTION
     The mdls command prints the values of all the metadata attributes
     associated with the files provided as an argument.

     The following options are available:
...

 

mdutil Command

Extract from man page:

mdutil(1)                   General Commands Manual                  mdutil(1)

NAME
     mdutil – manage the metadata stores used by Spotlight

SYNOPSIS
     mdutil [-pEsav] [-i on | off] mountPoint ...

DESCRIPTION
     The mdutil command is useful for managing the metadata stores for mounted
     volumes.

     The following options are available:
...

 

mdimport Command

Extract from man page:

mdimport(1)                 General Commands Manual                  mdimport(1)

NAME
     mdimport – import file hierarchies into the metadata datastore.

SYNOPSIS
     mdimport [-itpAXLr] [-d level] [-o -outputfile] [ file | directory ... ]

DESCRIPTION
     mdimport is used to test Spotlight plug-ins, list the installed plug-ins and
     schema, and re-index files handled by a plug-in when a new plug-in is installed.

     The following options are available:
...

 

Problems Research

  1. Restart Spotlight-Related Services
    1. SystemUIServer
    2. Spotlight
    3. mds
  2. Restart Your Mac
  3. Check Your Keyboard Shortcuts
  4. Check Your Spotlight Settings
  5. Update Your Mac
  6. Check for Disk Errors
  7. Reindex Spotlight Search
  8. Disable and Reactivate Spotlight Index
  9. Clear the Mac’s Cache

 

 

The Problems: Spotlight won’t work

There are several incarnations of Spotlight problems that I have personally run into, they are:

  • Problem #1) Spotlight menu icon highlights, but no search form appears
  • Problem #2) Spotlight search form appears, but no results are shown
  • Problem #3) Spotlight search works, but results are poor and incomplete

While not entirely sure what causes any of these problems, try these troubleshooting methods that frequently work to repair Spotlight:

The Solutions: Troubleshooting Spotlight

Solution #1: Kill SystemUIServer

  • Launch ‘Activity Monitor’ (located in /Applications/Utilities/)
  • Locate the process ‘SystemUIServer’, highlight it, and click the red button “Quit Process”
  • Within a few seconds the menubar will rebuild itself and often Spotlight will magically work

Solution #2: Rebuild the Spotlight Index manually

  • Launch ‘Terminal’ (located in /Applications/Utilities/)
  • At the command prompt, type this exactly:sudo mdutil -E /
  • You will be asked for your password, provide it, as this command requires administrator privelages to run
  • You will receive a confirmation message saying that index will be rebuilt
  • Wait until index is finished rebuilding, this can take a while depending on the size of your hard drive, amount of files, etc.
  • Note: You can also rebuild the Spotlight index with MainMenu, mentioned in Solution #4

Solution #3: Change Desktop Resolution

  • This is a strange fix but it works everytime for me when my Spotlight menu icon highlights but the search form doesn’t appear
  • Open “System Preferences” via the Apple Menu
  • Click ‘Displays’ and select a resolution smaller than what you are currently using, 640×480 seems to always work
  • Select your native resolution again, changing your screen resolution back to normal
  • The Spotlight search tray will magically become available again

Solution #4: Clear caches and preferences

  • Clear caches and preferences relating to Spotlight, this is best done through either the free tool OnyX, or the free tool MainMenu, we recommend MainMenu because it’s easier for novices
  • Install MainMenu
    • a little Hammer and Wrench icon will appear in your menubar
    • navigate down to ‘Cleaning’ and clean out User Cache, System Cache, and Font Caches
  • Note: Some users discover that just cleaning the Font caches is adequate to repair a screwy Spotlight, but it won’t hurt to clear them all

Solution #5: Reboot your Mac

  • This should almost be listed as #1 just because sometimes a simple reboot will fix Spotlight, but if I can avoid a reboot I will, and often, a reboot isn’t good enough

What do MDS and MDWorker have to do with Spotlight?
The MDS process and mdworker processes usually run concurrently on your Mac when Spotlight is indexing your Mac. Let the processes finish running to complete a relevant search index of your Mac filesystem.

Hopefully that covers it, and Spotlight should be working good as new again. If we missed something, feel free to contribute in the comments below.

Happy Spotlighting!