Shell search provider doesn't return non-indexed results
Affected version
- Nightly flatpak: Yes
- Other: nautilus-3.36.3-1.fc32.x86_64
Steps to reproduce
- Search for something not immediately in the home folder or Downloads, etc
Current behavior
Works properly in nautilus, but not in the Shell:
Expected behavior
Search works in the Shell.
Additional information
I thought it was the locale issue (I'm using the Russian locale) but it's 3.36.3 and the issue is still present.
Nautilus log when searching for openag
in the shell:
** (org.gnome.Nautilus:30759): DEBUG: 10:00:13.980: *** Search engine search started
(org.gnome.Nautilus:30759): Tracker-DEBUG: 10:00:13.980: Tracker.Sparql.Backend.query_async(): 'SELECT DISTINCT nie:url(?urn) xsd:double(COALESCE(?rank2, ?rank1)) AS ?rank nfo:fileLastModified(?urn) nfo:fileLastAccessed(?urn)
WHERE { ?urn a nfo:FileDataObject; nfo:fileLastModified ?mtime; nfo:fileLastAccessed ?atime; tracker:available true; nie:url ?url { ?urn nfo:fileName ?filename . FILTER(fn:contains(fn:lower-case(?filename), 'openag')) . BIND(5.0 AS ?rank2) . } . FILTER( tracker:uri-is-descendant('file:///home/yalter', ?url))} ORDER BY DESC (?rank)'
(org.gnome.Nautilus:30759): Tracker-DEBUG: 10:00:13.981: Preparing query: 'SELECT DISTINCT (SELECT "nie:url" FROM "nie:DataObject" WHERE ID = "v_urn" ) , CAST (COALESCE ("v_rank2" , CAST ("v_rank1" AS TEXT) ) AS REAL) AS "v_rank" , CAST (SparqlFormatTime ((SELECT "nfo:fileLastModified" FROM "nfo:FileDataObject" WHERE ID = "v_urn" ) ) AS TEXT) , CAST (SparqlFormatTime ((SELECT "nfo:fileLastAccessed" FROM "nfo:FileDataObject" WHERE ID = "v_urn" ) ) AS TEXT) FROM (SELECT * FROM (SELECT * FROM (SELECT "nfo:FileDataObject1"."nfo:fileLastModified" AS "v_mtime" , "nfo:FileDataObject1"."ID" AS "v_urn" , (("nfo:FileDataObject1"."nfo:fileLastModified:localDate" * 24 * 3600) + "nfo:FileDataObject1"."nfo:fileLastModified:localTime") AS "v_mtime:local" , "nfo:FileDataObject1"."nfo:fileLastAccessed" AS "v_atime" , (("nfo:FileDataObject1"."nfo:fileLastAccessed:localDate" * 24 * 3600) + "nfo:FileDataObject1"."nfo:fileLastAccessed:localTime") AS "v_atime:local" , "nie:DataObject2"."nie:url" AS "v_url" FROM "nfo:FileDataObject" AS "nfo:FileDataObject1" , "nie:DataObject" AS "nie:DataObject2" WHERE "v_mtime" IS NOT NULL AND "nfo:FileDataObject1"."ID" = "nie:DataObject2"."ID" AND "v_atime" IS NOT NULL AND "v_url" IS NOT NULL AND "nie:DataObject2"."tracker:available" = ?1 ) NATURAL INNER JOIN (SELECT * FROM (SELECT *, ?2 AS "v_rank2" FROM (SELECT "nfo:FileDataObject1"."ID" AS "v_urn" , "nfo:FileDataObject1"."nfo:fileName" AS "v_filename" FROM "nfo:FileDataObject" AS "nfo:FileDataObject1" WHERE "v_filename" IS NOT NULL ) ) WHERE ((SparqlLowerCase ("v_filename" ) GLOB '*' || ?3 COLLATE TRACKER || '*') ) ) ) WHERE (SparqlUriIsDescendant (?4 COLLATE TRACKER , "v_url" ) ) ) ORDER BY ("v_rank" ) DESC '
** (org.gnome.Nautilus:30759): DEBUG: 10:00:13.992: *** Search engine search finished - time elapsed 12ms
(note it says 5.0 AS ?rank2
and not ,
like in that locale issue)
┌ ~
└─ gdbus call --session --dest org.gnome.Nautilus \
--object-path /org/gnome/Nautilus/SearchProvider \
--method org.gnome.Shell.SearchProvider2.GetInitialResultSet '["openag"]'
(@as [],)
When searching inside nautilus itself:
(org.gnome.Nautilus:30759): Tracker-DEBUG: 10:01:09.495: Tracker.Sparql.Backend.query_async(): 'SELECT DISTINCT nie:url(?urn) xsd:double(COALESCE(?rank2, ?rank1)) AS ?rank nfo:fileLastModified(?urn) nfo:fileLastAccessed(?urn) fts:snippet(?urn)
WHERE { ?urn a nfo:FileDataObject; nfo:fileLastModified ?mtime; nfo:fileLastAccessed ?atime; tracker:available true; nie:url ?url { ?urn fts:match '"nie:plainTextContent" : "openag"*' . BIND(fts:rank(?urn) AS ?rank1) . } UNION { ?urn nfo:fileName ?filename . FILTER(fn:contains(fn:lower-case(?filename), 'openag')) . BIND(5.0 AS ?rank2) . } . FILTER( tracker:uri-is-descendant('file:///home/yalter', ?url))} ORDER BY DESC (?rank)'
(org.gnome.Nautilus:30759): Tracker-DEBUG: 10:01:09.495: Preparing query: 'SELECT DISTINCT (SELECT "nie:url" FROM "nie:DataObject" WHERE ID = "v_urn" ) , CAST (COALESCE ("v_rank2" , "v_rank1" ) AS REAL) AS "v_rank" , CAST (SparqlFormatTime ((SELECT "nfo:fileLastModified" FROM "nfo:FileDataObject" WHERE ID = "v_urn" ) ) AS TEXT) , CAST (SparqlFormatTime ((SELECT "nfo:fileLastAccessed" FROM "nfo:FileDataObject" WHERE ID = "v_urn" ) ) AS TEXT) , "v_urn:ftsSnippet" FROM (SELECT * FROM (SELECT * FROM (SELECT "nfo:FileDataObject1"."nfo:fileLastModified" AS "v_mtime" , "nfo:FileDataObject1"."ID" AS "v_urn" , (("nfo:FileDataObject1"."nfo:fileLastModified:localDate" * 24 * 3600) + "nfo:FileDataObject1"."nfo:fileLastModified:localTime") AS "v_mtime:local" , "nfo:FileDataObject1"."nfo:fileLastAccessed" AS "v_atime" , (("nfo:FileDataObject1"."nfo:fileLastAccessed:localDate" * 24 * 3600) + "nfo:FileDataObject1"."nfo:fileLastAccessed:localTime") AS "v_atime:local" , "nie:DataObject2"."nie:url" AS "v_url" FROM "nfo:FileDataObject" AS "nfo:FileDataObject1" , "nie:DataObject" AS "nie:DataObject2" WHERE "v_mtime" IS NOT NULL AND "nfo:FileDataObject1"."ID" = "nie:DataObject2"."ID" AND "v_atime" IS NOT NULL AND "v_url" IS NOT NULL AND "nie:DataObject2"."tracker:available" = ?1 ) NATURAL INNER JOIN (SELECT "v_urn:ftsRank" , "v_urn:ftsOffsets" , "v_urn:ftsSnippet" , "v_rank1" , NULL AS "v_rank2" , NULL AS "v_filename" , "v_urn" FROM (SELECT *, "v_urn:ftsRank" AS "v_rank1" FROM (SELECT snippet("fts51"."fts5", -1, '', '', '…', 5) AS "v_urn:ftsSnippet" , "fts51"."ROWID" AS "v_urn" , tracker_offsets("fts51"."fts5") AS "v_urn:ftsOffsets" , "fts51"."rank" AS "v_urn:ftsRank" FROM "fts5" AS "fts51" WHERE "fts51"."fts5" = ?3 ) ) UNION ALL SELECT NULL AS "v_urn:ftsRank" , NULL AS "v_urn:ftsOffsets" , NULL AS "v_urn:ftsSnippet" , NULL AS "v_rank1" , "v_rank2" , "v_filename" , "v_urn" FROM (SELECT * FROM (SELECT *, ?4 AS "v_rank2" FROM (SELECT "nfo:FileDataObject1"."ID" AS "v_urn" , "nfo:FileDataObject1"."nfo:fileName" AS "v_filename" FROM "nfo:FileDataObject" AS "nfo:FileDataObject1" WHERE "v_filename" IS NOT NULL ) ) WHERE ((SparqlLowerCase ("v_filename" ) GLOB '*' || ?5 COLLATE TRACKER || '*') ) ) ) ) WHERE (SparqlUriIsDescendant (?6 COLLATE TRACKER , "v_url" ) ) ) ORDER BY ("v_rank" ) DESC '
Edited by António Fernandes