Your principle question seems to be "how do I get baloo to update its index?" and the answer to that is that you don't, it uses a system called inotify
(as seen in this Baloo documentation that mentions inotify).
When you first use baloo it creates an index, from then it updates the index as you alter the directories it is watching. To optimise baloo, only have directories you care about in the index. In KDE use "file search" from the application menu (accessible using kcmshell5 kcm_baloofile
) to choose the directories to index. Or, you can edit the ~/.config/baloofilerc
directly.
You can use balooshow
to check a file is in the index, eg balooshow ./*
will show if the current directories files are indexed or not.
balooctl monitor
(and other balooctl commands) can help with debugging, if you run it and then change something in a monitored folder then you should see some activity, eventually it will show "Idle" and all indexing has been finished. This is almost instantaneous in my tests adding 100 text files to a folder/directory.
Here's some example output:

from when I ran:
for i in {1..100}; do touch $i.txt; done
balooshow ./*
with:
balooctl monitor
running in the right pane.
You can confirm that documents are in the index by searching, also, using baloosearch
or however you normally use baloo for searching, eg through KDE/Plasma's Dolphin file manager.