Я пытаюсь запросить API поиска рабочего стола Windows, используя SQL.
Я должен сказать, что действительно ненавижу графический интерфейс поиска Windows 7, и поэтому я решил написать свой собственный. У меня много проиндексированных файлов (около 1.000.000), и я хочу выполнить поиск по именам. Что-то вроде: Покажите мне каждое имя, которое содержит «зайчик».
Но здесь я сталкиваюсь с проблемой производительности. Поиск
SELECT "System.ItemPathDisplay"
FROM "SystemIndex"
WHERE System.FileName LIKE 'egon%'
действительно быстро. Также альтернатива %egon
. Но %egon%
длится вечно. Я не уверен, имеет ли он характер индекса (я понимаю, что возможности значительно увеличиваются) или я делаю что-то не так.
Вопрос:
- Правильно ли, что индекс windows является только большой базой данных SQL?
- Если это так, где я могу найти точную информацию о структуре БД (первичные ключи, индексы).
Если у меня это есть, то это просто оптимизация SQL.
Альтернативный вопрос: Кто-нибудь знает быстрый оператор SQL для поиска всех файлов с egon где-нибудь в имени.
Редактировать: почему мне не нравится поиск GUI
Ну, это просто не интуитивно понятно, по сравнению с XP. Если вы отключите собаку и используете старый интерфейс XP, я мог бы создать поисковый запрос, например:
- Все файлы старше 1 месяца
- больше 10 МБ
- имя шаблона
*_homework_*.docx
Попробуйте это в Windows 7 без "изучения" синтаксиса. И, черт возьми, я не хочу изучать другой синтаксис только для того, чтобы найти один файл.
Другая главная проблема - это, возможно, мои привычки поиска. Большую часть времени я как-то знаю имя файла (или части) и просто хочу местоположение. И если вы используете поиск таким образом, вы столкнулись с несколькими проблемами:
- Прежде всего, всегда нужно указывать префикс с именем:
- Тогда расположение имени папки глупо (упорядочение по родительской папке, а не по полному пути, я думаю , потому что .. тада ... см. Следующий пункт)
- Тогда, что еще более раздражает, если у вас есть список результатов и вы пытаетесь их отсортировать, это займет вечность
И теперь я действительно думаю, что в моей системе есть ошибка. Я попытался быстро проверить это, поискал в папке среднего размера «test», и он нашел несколько файлов. Затем я попытался отсортировать их по папкам (чтобы проверить мою вторую точку), и теперь он просто ищет навсегда ... Я имею в виду, в то время как я печатаю, он пытается найти слово "привет" ... о, закончил - он найдено около 20 файлов. Итак, давайте попробуем кое-что ... Хорошо, теперь кажется, что он выздоровел ... Но все же, чтобы замедлить на мой вкус ...
Итак, хватит ругаться по поводу поиска: -)