Pull to refresh

Comments 71

Тут возникают вопросы: где поиск Windows берет информацию о типах файлов и второе, главное, – как заставить искать текст там, где мы этого хотим.

На это ответить достаточно просто.

Для Indexing Service существует понятие «фильтра», т.е. некоего модуля, который парсит файлы и выдает их содержимое в виде, понятном для службы. Фильтры регистрируются для типов файлов (а те обычно определяются по расширениям). Соответственно, в вашем случае в системе есть фильтр для PDF, а для JPEG фильтра нет (или он не парсит интересующий вас участок файла).
Панель управления → параметры индексирования → дополнительно (вкладка «типы файлов») — здесь настраиваются фильтры в соответствии с типом файла, Вы про эти фильтры говорите? Но, как я понимаю, это касается поиска в индексированных каталогах. А как настроить эти фильтры для поиска в неиндексированных расположениях?
А как настроить эти фильтры для поиска в неиндексированных расположениях?

Думаю, что никак, поскольку это (парсинг файла фильтром) недешевая операция.
поиск-вне-индекса

Ищет значит по содержанию вне индекса?
Так в каких типах файлов? Как узнать, как настроить?
Этого я не знаю — банально потому, что не знаю (как и вы), какой механизм при этом используется.
На выяснение подобных «особенностей» порой требуется слишком много времени и сил в самые не подходящие моменты.
Это называется не лучше, а проще. В win 7 поиск значительно мощнее, но придется постараться, чтобы настроить его в необходимом тебе виде.
Поиск — это первое, что я отключил после покупки ноутбука с «семеркой» после долгих мучений в попытке найти файл на флешке с документами (много-много документов). Точного имени и содержания файла я не помнил, но мне он был нужен срочно и среди многих подобных — именно он. В имени файла была фамилия, но как потом оказалось, перед фамилией стояло без пробела слово ФЛП (физическое лицо — предприниматель) — найти не удалось.
Попробуйте Google Desktop Search поставить, проект уже не поддерживается, но работает гораздо адекватнее стандартного поиска в Wndows 7, про 8ку не скажу, ибо не проверял.
Зря минусуете человека. Если поиск в XP или 2003 сервере показывал, что искомый файл не найден, то я был уверен, что такого файла нет. Начиная с висты и дальше это может означать что угодно. Ее поиск мог не показать файл, даже когда я находил его глазами в папке.
Руки кривые? Не исключено. Но до этих «нововведений» у меня с поиском проблем не было, и я мог четко и быстро вбить параметры, по которым хочу искать и не сильно сомневался в результатах. А теперь? Вот какого хрена я на 7-ке должен подождать, пока он по введеной строке прочешет все файлы, скажет, что нихрена не нашел, и только после этого внизу появится возможность выбрать поиск по содержимому файла, хотя я заранее знал, что надо искать в содержимом.
Я не увидел для себя плюсов «более мощного поиска». Одна поисковая строка, в которую я не могу сразу вбить какие-то параметры, например поиск содержимого по скрытым и системным файлам у меня ничего кроме раздражения не вызывает.
Мне виндового проводника всегда хватало, а теперь периодически посещает мысль поставить какой-нибудь TotalCommander только из-за поиска нормального.
А уж в 98ой какой крутой поиск был. Я когда на ХР пересел очень расстроился по поводу смены и перешел на FAR.
wildcard'ы — это замечательная штука. *, а еще?.. Это удобно, они используются уже не один десяток лет. Почему их использование считается хитростью?
UFO just landed and posted this here
… ну и заодно поменять операционную систему… ))
Это все фигня по сравнению с тем, что нажав в windows 8 кнопку «win» и начав набирать название программы — будут также отображены только те программы, у которых слово в названии начинается с вводимого текста. Вводим «shell» и видим пустой список. Вводим «power» и видим «windows powershell». Инновации, фигли :(.
С удивлением обнаружил, что в Spotlight в Mac OS (системный аналог поиска в Win) поведение аналогично, за небольшим отличием по поводу CamelCase: например есть программа TextWrangler, набирая wran — подсказка будет. Набирая ran — уже нет.

Аналогично с поиском по содержимому — ищется только то, что является началом «слова».

Мировой заговор?
К чему эта картинка, вы статью вообще читали? Речь идет про поиск в середине слова.
Я говорю о том, что если искать «mat» — TextMate будет найден. А если искать «mina», то Terminal не найдется.
Да, статью читал.
Прошу прощения: совсем не оратил внимание, что «te» в моем примере находится не только в конце слова, но и в начале :-) Злая шутка случая. И я обрадованный запостил картнинку, не проверив других вапиантов.

p.s. «mate» найдет, так как CamelCase ;-)
Я чего-то не понимаю, или Вы не попробовали ставить * в начале искомой последовательности?
Разница между поиском fa и *fa как раз именно в том, что в первом случае мы ищем слова, начинающиеся с fa, а во втором — содержащие fa в любом месте.
Вы несколько раз описываете что поиск не находит то, что Вы хотели, но ни разу не написали про *.
Такое поведение поиска именно что правильное. Потому что часто адекватный поиск возможен как раз по началу слова.
А если сделать так, как Вы предполагаете, то такой поиск будет просто невозможен.
Попробуем хитрость, введем первым символом запроса «звездочку» *ro:
Прошу прощения, почему-то сразу не заметил в статье про поиск со звездочкой.
Претензия по первому пункту снимается.
По второму — остается. Именно так и нужно делать, чтобы различать два варианты поиска.
В случае поиска по именам и содержимому файлов.
1. В текстовом файле есть слово Wrong;
2. В поле поиска вводим *rong;
3. В результате поиска файл не найден!
Как быть?

Такое поведение поиска именно что правильное. Потому что часто адекватный поиск возможен как раз по началу слова.

Не могу с этим согласиться. Адекватный — это, когда я ввожу последовательность символов и нахожу ее, где бы она не встречалась: в начале, в конце, ровно в центре или сбоку.
а по слову Wrong находит? т.е. вообще поиск работает?
но если отвечать полноценно, то надо иметь в виду, что поиск по именам и поиск по содержимому всегда работали по разным принципам (и на разных движках).
Все, что я писал про звездочку — относится к поиску по именам.

Поиск по тексту надо посмотреть подробнее, а у меня нет возможности. возможно, там не звездочки, а знак %, нужно смотреть документацию по полнотекстовому поиску.
Мною опробованы: ~, @, $, %, -, !, даже пробел.

Вот что говорит справка Win8:
«Какие расположения файлов и папок индексируются?
Библиотеки, электронная почта и автономные файлы индексируются по умолчанию. Папки, в которых обычно хранятся файлы программ и системные файлы не индексируются, поскольку большинству пользователей не требуется часто выполнять в них поиск.»


Вот еще:
«Если из-за индексации ваш компьютер работает медленно, вы можете приостановить индекс на 15 минут, чтобы выполнить работу. Как это сделать, см. в разделе Индексация и поиск: вопросы и ответы. Если вы не часто выполняете поиск и не хотите, чтобы индексация осуществлялась в фоновом режиме, или вам нужны очень точные результаты, даже если их получение займет много времени, вы можете отключить индексацию. При этом Windows выполняет поиск в фактических файлах и папках, а не по индексу.»

Фактически пользователя ограничивают поиском в бмблиотеках. А поиск в неиндексированных расположениях справка игнорирует.
Техника в руках дикаря — кусок металлолома.

Вайлдкарты? Не, не слышал. Наверное, это какая-то хитрость.
«Поиск ищет только проиндексированные файлы». Да ладно?) А вот гугл-поиск ищет непроиндексированные, ага?)
Вайлдкарты? Не, не слышал. Наверное, это какая-то хитрость.

В случае поиска по именам и содержимому файлов.
1. В текстовом файле есть слово Wrong;
2. В поле поиска вводим *rong;
3. В результате поиска файл не найден!

Есть подходящая пословица?
UFO just landed and posted this here
В WinXP поиск работал и без wildcard-ов, и в результатах я не сомневался. Сейчас наблюдается рост не только терабайтов, но и быстродействия (скорости выполнения операций).
Поставил Everything search engine (http://www.voidtools.com/) — вот где сила поиска по именам.
Поддерживаю. Мгновенный поиск, очень удобно.
Ну, когда тыща пицот файлов на флешке, простите, все печально.
Лично по себе могу сказать только одно — единственное что я ищу
а) визуально фотки в PIcasa
б) музыку в коллекции медиаплеера — есть большой процент композиций без тегов, все это тоже валяется в одном каталоге.

Все остальное у меня подвергается жёсткой сортировке — документы по проекту/компании/годам,
Документация/книги/маны по технологиям/сервисам/серверам,
Инсталяшки софта по типам — медиа, офис, утилиты
проекты — десктоп (гуи/консоль), телефон, web, скачанные проекты-примеры, куски исходников
Единственный срач — в загрузках валяется куча файликов от Torrent клиента, но сами тоже загрузки регулярно чистятся.
Плюсую Everything. Он мало весит, быстро индексирует (работает только на NTFS), не грузит систему и МГНОВЕННО находит по имени любой файл или папку. Поддерживает wildcards, regexp.
С Windows 8 даже последняя бета-версия Everything работает некорректно. У меня почему-то индекс обновляется раз, а затем новые файлы в индекс не попадают. Можете что-нибудь посоветовать, или ждать официальной поддержки Windows 8?
Честно говоря, не могу ничего сказать по этому поводу. Windows 8 у меня на домашнем компьютере, где я ничего не ищу и Everything не установлен. Попробуйте альтернативы, заодно статью напишите для всех. :)
В принципе мне и родного поиска с включенной индексацией хватает, так что пока буду довольствоваться тем, что есть. Спасибо за ваш ответ.
Разработчик Everything недавно продолжил разработку. Теперь он ставится как сервис и т.п. Попробуйте бета версии.
Спасибо за ваш ответ. Установил после выхода Everything 1.3.1.636b, но вроде есть проблема с индексацией новых данных. Вы бы не могли поделиться своими настройками для этой программы? Может я что-то не так у себя настроил.
Только сегодня поставил бету — вроде бы все правильно работает. У меня windows 7. Настройки все по-умолчанию. Хранятся в %appdata% и он запускается как сервис.

У вас включены «run in background», «enable usn journal logging», «monitor changes»?
Да, включены, только не смог найти «enable usn journal logging». Запустил службу, вроде начало индексировать. Понаблюдаю в общем. Ещё раз спасибо ;-)
«enable usn journal logging» — это в Indexes -> NTFS и отдельно для каждого диска.
Нашёл. Вроде всё заработало после того как установил службу Everything.
UFO just landed and posted this here
Из статьи следует, что поводом для ее написания было следующее:
1. Поиск только по именам файлов (с выключенным параметром «искать по именам файлов и содержимому») работает некорректно. А именно – файл будет найден, только если выполняется одно из условий:
a) искомая последовательность символов является началом слова;
b) искомая последовательность символов расположена после некоторых символов типа дефиса, точки, подчеркивания и возможно других, определять перечень которых считаю бесполезной тратой времени.

2. Поиск по именам файлов и содержимому файлов (с включенным параметром «Искать по именам файлов и содержимому») работает некорректно. А именно – файл с нужным нам содержимым (нас интересует именно содержание файла) будет найден, только если выполняются два условия:
a) тип файла включен в перечень типов, для которых операционная система выполняет текстовый поиск;
b) искомая последовательность символов либо является началом слова, либо расположена после некоторых символов типа дефиса, точки, подчеркивания и возможно других, определять перечень которых считаю бесполезной тратой времени.

И это справедливо и с индексом и без.
Везде, где у вас написано «некорректно», следует читать «не так, как мне хочется» (это не одно и то же).
Пускай так.
Но как назвать отсутствие возможности найти стандартным поиском текстовый файл по содержимому (если в поле поиска введена часть слова — не начало)? А в настройках поиска есть параметр «искать частичные совпадения». И wildcard-ы не работают.
Это специфическое поведение системы. Нигде не сказано, что «частичные вхождени» могут быть в любой части слова.

Я, заметим, нигде не говорю, что такое поведение — хорошо и ожидаемо. Я просто констатирую факт, что называть его некорректным не стоит.
Это специфическое поведение системы.

Лучше так: «Это не баг — это фича».
Фича — это достоинство системы. Специфическое поведение — это quirk.
UFO just landed and posted this here
Хорошо, мне, как рядовому пользователю, понятна настройка «искать частичные совпадения», и я ее активирую. Хочу найти в своих обычных текстовых файлах те, где в словах встречается give (например unforgiven), это же и есть частичные совпадения. Набираю give в поле поиска и в результатах вижу те файлы, где есть слово given, но не вижу тех, где есть unforgiven. Ну никак я не могу считать такое поведение нормой, хоть я гик, хоть я 95%. При этом ведь не имеет значения индексированы эти файлы или нет, работает вообще индексирование или нет! И, повторюсь, в WinXP такой проблемы не было. В программах где есть встроенный поиск (например Opera), он тоже работает ожидаемо (unforgiven находится). В справке Windows для обычных пользователей (которые недавно расстались с любимой XP) про такое поведение нет никаких упоминаний.
UFO just landed and posted this here
Действительно не знаю как работает поиск «изнутри», но вижу результаты его работы. Вот и хочу понять, как работает поиск в неиндексируемых расположениях, в каких типах файлов ищет текст, как это настроить и главное — почему не находит файлы по содержимому, если набран запрос — часть слова и эта часть не начало слова.
При настройке если знаю что человек поиском если и будет пользоваться, то ооочень редко — отключаю индексирование. так как по моим наблюдениям на старых компьютерах с миллионом файлов очень на быстродействии сказывается.
Я в свое время наткнулся на эти нюансы с поиском и индексацией, отключил индексацию, погуглил сторонние утилиты поиска, сейчас пользуюсь FileSearchEX.
На оф. сайте написано, что это (FileSearchEX) средство для Win7. А на Win8 кто-нибудь пробовал?
* Здесь мог быть язвительный комментарий с напоминанием о мощи find | cat | grep *
>Мною опробованы: ~, @, $, %, -, !, даже пробел
Попробовали бы "?"
Да в этом новом поиске полно багов, я частенько не могу найти там 100% установленную программу в поиске меню «Пуск». А еще бывает — поиск работает только при полном вводе искомого имени (см. скриншот)

Скриншот бага


Т.е. notepad.exe и cmd находит только когда введешь слово целиком (хотя на notepad++ это не распространяется). Это вообще нонсенс: поиск живой, но работающий только когда вы введете искомое целиком :)
Скорее всего это тоже фича, искать до полного совпадения, или там лимит на число совпадений есть, и пока их много ничего не показывается. Вы попробуйте в таком случае жать «Ознакомится с другими результатами» там будут все совпадения.
Кстати если ввести впереди дефис, то результат поиска – все файлы кроме pe.pdf, опять загадка.

Похоже для windows это не «дефис» а «минус». Получаем как в поиске google: минус значит «кроме, без». Если без минуса оно не находит pe.pdf, то с минусом как раз его и должно найти.
Похоже на то.
Только поправлю: если без минуса/дефиса, то находит файл pe.pdf, а с минусом находит все кроме него.
Вообще то, поиск по содержимому использует индексацию, и работает в точности как поиск в интернете, т.е. по словам, а не по последовательностям букв. Ведь представьте себе какой тогда нужен кэш поисковой системы чтобы учесть все вхождения.
Попробуйте в гугле поискать по части слова из середины, результаты будут аналогичные.
Все же речь идет о поиске на локальном компьютере с использованием стандартного поиска Win8, в котором есть параметр «искать частичные совпадения». И который работает, похоже по одному ему известному алгоритму, а не так как ожидают пользователи. (Не так как это было на WinXP). А индексация может быть отключена, это не имеет значения.
Кстати вот кому интересно, по-моему мнению, пример годного поиска от команды NirSoft.
в XP не было поиска по содержимому, а поиск по файлам корректен.
Уверен чуть более, чем полностью, что был:

image

И подстановочные знаки не нужны.
О, был неправ, давно дело было. Однако поиск там занимал куда больше времени. А индексация вещь такая, если не сделать ограничение на минимальную последовательность, например в 3 знака, то представьте себе сколько будет кеша для всех вхождений например 1 буквы. Это издержки технологии, ничего не поделать, иначе кеш будет занимать больше чем данные.
Sign up to leave a comment.

Articles

Change theme settings