I was investigating the behavior of Baloo and Dolphin when I noticed something curious. When searching for already indexed filed through Dolphin, the search is near instantaneous in my case. But for the non indexed filed, they don't even show up in the results. For comparison, I decided to deactivate the file indexer temporarily to see how Dolphin behaves. Now it takes a few seconds to search through the directories but it did find the files that weren't indexed. This thing with the indexing happens often when searching in places the file indexer didn't run, like removable drives or other partitions. As an experiment, I created a symlink on my home folder, which was indexed, to my steamapps folder, which is inside the .steam/root/ folder. It wasn't indexed, possibly because of the config for indexing hidden files being on "no". It also happens if the symlink is to a different partition on disk. For those cases, wouldn't it be better if the regular search is used instead of looking over the index file from Baloo? That way it doesn't show "No items matching the search". I assume it is one of the reasons many people think Baloo doesn't work. Could well put this in the 15-minute bug list if possible. I like how I can use tags for files and Baloo is necessary for that.
A possibly relevant merge request was started @ https://invent.kde.org/system/dolphin/-/merge_requests/642
Perhaps worth linking to a couple of summaries... (In reply to ryu.ketsueki from comment #0) > I was investigating the behavior of Baloo and Dolphin when I noticed > something curious. When searching for already indexed filed through Dolphin, > the search is near instantaneous in my case. But for the non indexed filed, > they don't even show up in the results. For comparison, I decided to > deactivate the file indexer temporarily to see how Dolphin behaves. Now it > takes a few seconds to search through the directories but it did find the > files that weren't indexed. Have a look at Bug 463830 - for a comparision of Dolphin's "filenamesearch" and "baloosearch" > ... As an > experiment, I created a symlink on my home folder, which was indexed, to my > steamapps folder, which is inside the .steam/root/ folder. It wasn't > indexed, possibly because of the config for indexing hidden files being on > "no". It also happens if the symlink is to a different partition on disk. > For those cases, wouldn't it be better if the regular search is used instead > of looking over the index file from Baloo? That way it doesn't show "No > items matching the search". I assume it is one of the reasons many people > think Baloo doesn't work ... Similarly Bug 447119 gives thepitfalls and confusions possible with symlinks > I like how I can use tags for files and Baloo is necessary for that. Indeed. Baloo gives Dolphin superpowers :-)
Git commit 4102ccb80457eea44ea280f0ace2a419602bc34b by Felix Ernst. Committed on 07/04/2025 at 21:09. Pushed by felixernst into branch 'master'. Rewrite search integration This huge commit is a nearly complete rewrite of the Dolphin search code. It implements most of the improved Dolphin search UI/UX as designed and discussed in a collaborative effort by Kristen McWilliam, Jin Liu, Andy Betts, Tagwerk, a few others and me. See https://invent.kde.org/system/dolphin/-/issues/46. # Notable changes - A toggle to change the search tool is provided as most contributors deemed that useful in https://invent.kde.org/system/dolphin/-/merge_requests/642#note_985112. - The default search is changed to filenamesearch for maximum reliability. - Removing all search parameters will take users back to the view state prior to starting a search instead of keeping the search results open. - The UI for choosing file types or modification dates has been made more powerful with more granularity and more options. - Most search parameters can be configured from a popup menu which gives us extra space for extra clarity. - Labels and help buttons as well as hyperlinks to settings makes sure the user always knows why some search parameters are unavailable in some contexts. - Chips show important search parameters while the popup is closed. They allow quickly removing filters. - The titles of the search and the input field placeholder message change to make clear whether file names or file contents are searched. - When the user actively switches the search tool, whether content should be searched, or whether to search everywhere, this is preserved for the initial state of the search bar when the user opens it the next time after restarting Dolphin. # Architecture - The new DolphinQuery class is independent of the UI and contains all search parameters modifiable in Dolphin as easy setters and getters. - DolphinQuery objects are also used to update the states of every component in the search UI. There is now a clear separation of UI and search configuration/DolphinQuery. - DolphinQuery is responsible for exporting to and importing from search URLs. - The search UI always reflects the currently configured DolphinQuery no matter if the user changed the UI to change the DolphinQuery or loaded a DolphinQuery/older search URL which then is reflected in the UI. - I tried to simplify all classes and their interaction between each other as much as possible. - I added some tests Related: bug 386754, bug 446387, bug 470136, bug 480001, bug 483578, bug 488047, bug 488845, bug 500103, bug 435119, bug 471556, bug 475439, bug 477969 FIXED-IN: 25.08 M +19 -4 src/CMakeLists.txt M +5 -0 src/config-dolphin.h.cmake M +22 -17 src/dolphinmainwindow.cpp M +2 -6 src/dolphinrecenttabsmenu.cpp M +103 -130 src/dolphinviewcontainer.cpp M +41 -30 src/dolphinviewcontainer.h M +2 -2 src/global.h A +356 -0 src/search/bar.cpp [License: GPL(v2.0+)] A +206 -0 src/search/bar.h [License: GPL(v2.0+)] A +150 -0 src/search/barsecondrowflowlayout.cpp [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +48 -0 src/search/barsecondrowflowlayout.h [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +52 -0 src/search/chip.cpp [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +101 -0 src/search/chip.h [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +0 -0 src/search/configurationpopup.h [License: Trivial file] M +5 -1 src/search/dolphin_searchsettings.kcfg D +0 -312 src/search/dolphinfacetswidget.cpp D +0 -84 src/search/dolphinfacetswidget.h M +339 -70 src/search/dolphinquery.cpp M +278 -37 src/search/dolphinquery.h D +0 -575 src/search/dolphinsearchbox.cpp D +0 -189 src/search/dolphinsearchbox.h A +378 -0 src/search/popup.cpp [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +99 -0 src/search/popup.h [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +61 -0 src/search/selectors/dateselector.cpp [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +42 -0 src/search/selectors/dateselector.h [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +81 -0 src/search/selectors/filetypeselector.cpp [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +36 -0 src/search/selectors/filetypeselector.h [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +51 -0 src/search/selectors/minimumratingselector.cpp [License: GPL(v2.0+)] A +42 -0 src/search/selectors/minimumratingselector.h [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +189 -0 src/search/selectors/tagsselector.cpp [License: GPL(v2.0+)] A +45 -0 src/search/selectors/tagsselector.h [License: GPL(v2.0+)] A +56 -0 src/search/updatablestateinterface.h [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +67 -0 src/search/widgetmenu.cpp [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] A +63 -0 src/search/widgetmenu.h [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)] M +3 -3 src/tests/CMakeLists.txt M +1 -1 src/tests/dolphinmainwindowtest.cpp M +214 -64 src/tests/dolphinquerytest.cpp A +124 -0 src/tests/dolphinsearchbartest.cpp [License: GPL(v2.0+)] D +0 -63 src/tests/dolphinsearchboxtest.cpp https://invent.kde.org/system/dolphin/-/commit/4102ccb80457eea44ea280f0ace2a419602bc34b