Давайте поможем!
Для любых проблем поиска в Windows я рекомендую две вещи:
- Прочитайте документацию AQS (Advanced Query Syntax) , чтобы вы знали, что делают все специальные символы.
- Знайте, что Windows Search преобразует ваш запрос в точный AQS, и, если вы не конкретны в своих запросах, Windows будет угадывать, какой AQS вы действительно имели в виду. Результаты могут быть удивительными!
Во-первых, некоторые основы AQS
По умолчанию свойства строкового файла (имя файла, автор и т. Д.) Выполняют поиск COP_WORD_STARTSWITH
$<
, поэтому любое слово (разделенное spaces , - _ () []
и более) начинается с вашего поискового запроса. Другие нестроковые свойства (даты и т. Д.) Выполняют поиск с COP_EQUAL
=
точными совпадениями или по умолчанию (без подстановочных знаков *
и ?
являются буквальными).
Во-вторых, если вы выполняете поиск в любом проиндексированном местоположении, то все неиндексированные местоположения в вашем запросе не будут показаны.
В-третьих, нажмите на адресную строку, чтобы увидеть, с чем в действительности осуществлялся поиск AQS Windows Search. Вы можете игнорировать крошки местоположения и отображаемое имя: оно будет кодироваться в процентах, поэтому декодируйте на сайте, таком как https://www.url-encode-decode.com/
В-четвертых, не документированы *
и ?
ведут себя непредсказуемо в AQS, если только они не находятся в ~
COP_DOSWILDCARDS
запросе (то есть не-слово начинается с и подстановочных знаков *
или ?
интерпретируются). Поиск в Windows обычно преобразует запросы в ~
запрос. Например, кажется, что подстановочные знаки **
и ?
с алфавитно-цифровыми символами поиск свойства строки с ~
, но **
без буквенно-цифровых символов ничего не ищет. Кроме одного *
в не ~
запросы рассматриваются в качестве шаблона с COP_WORD_STARTSWITH
$<
.
Давайте проанализируем ваши запросы
(
AQS search-ms:displayname=Search Results in Users&crumb=&crumb=location:C:\Users
Упрощенныйcrumb=
Ну, без кавычек (
это оператор группировки, когда вы используете AND
или OR
, вы ничего не сгруппировали, поэтому Windows считает, что вы имели в виду, что группа ничего не ищет во всем.
*(*
AQS crumb=
Большинство поисков окон, которые начинаются с *
окон, пытаются преобразовать в crumb=~~query_term
(поиск содержит). *
обрабатывается как обычно в запросе содержимого. В любом случае, в этом случае вы указываете группу ничто, поэтому Windows ищет все группы ничего (или все!)
"("
AQS crumb=System.Generic.String:"("
Котировки искать точные фразы (всего слова или свойства должны соответствовать) и буквенные символы для исключением *
, ?
и ""
стать "
. Это ищет слова, которые начинаются с (
, но так как слова не являются, (
он ищет только свойства, которые просто(
*"("*
AQS crumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("*
Это безумие, но Windows Search пытается преобразовать префикс с *
последующими определенными специальными символами в звездные рейтинги. 1-13 это 1 звезда. Также обратите внимание на мое тестирование, **
без каких-либо буквенно-цифровых символов до или после него ничего не ищет вместо подстановочного знака и непредсказуемо.
Этот полный запрос означает
(1 звездный рейтинг ИЛИ Слово, которое начинается с нуля) И свойства, которые просто (
. *
не будет соответствовать никаким другим символам, потому что все свойство должно быть (
.
Упрощенно это означает, что 1 звездные файлы называются (
**
в запросе на самом деле показал звезду , не один (
файл для меня, но при изменении направления **
к ***
и обратно **
это дало ожидаемый никаких результатов ( **
непредсказуемо)
Другие ответы
~="("
AQS crumb=System.Generic.String:~="("
Это не сработало, окна, похоже, ничего не нашли, если объем поиска слишком интенсивный. filename:~="("
работает. По сути, найти имя файла, который содержит только (
где-то
"*(*"
AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*"
Это сработало. Имя файла содержит *(*
символы подстановки ИЛИ любое слово свойства, которое начинается с символов подстановки и имеет (
. Обратите внимание, как ~=
и ~~
среднее содержит.