I battled this for months but, dreading a full reinstall and (selective) restore, resorted to trying many things, including the steps suggested by OneInfiniteLoop above.
Nothing worked. Spotlight and corespotlightd were consistently at 350% CPU, for many seconds, sometimes up to what felt like a minute. Logs were inconclusive (to me at least).
What finally worked for me was to:
Turn indexing off: mdutil -a -i off /
Trash all spotlight data: rm -rf ~/Library/Metadata/CoreSpotlight/ and sudo /System/Volums/Data/.Spotlight-V100, then
killall -KILL Spotlight spotlightd mds (not sure this was the right set of processes)
Turn indexing back on: mdutil -a -i on /
For some reason I had to do this twice. Probably because I was too lazy to restart.
Note: the recommended way of excluding and then including your SSD again to force a spotlight reindex did not work.
Anyway, now everything is back to normal, spotlight—and Mail.app search, Notes.app search, etc., including Time Machine backups (!!, go figure)—are blazingly fast and never exceed 30% CPU.
Problem solved—for me and for now at least…
Hope this helps.