Пошук у Windows не індексує зміст текстових файлів із розширенням .SQL


10

У мене виникають проблеми з пошуку Windows для індексації вмісту текстового файлу, який має .sqlрозширення. Чи є щось, що я роблю неправильно?

Фон:

Я використовую програму на роботі під назвою Navicat, яка допомагає мені працювати з нашою базою даних MySQL. Коли я використовую Navicat для редагування та збереження запитів, він зберігає їх у .sqlфайлах, які знаходяться в каталозі Navicat у файлах програми.

Оскільки пошук за Windows за замовчуванням не індексує файли в програмних файлах, я додав його до списку індексованих місць, як показано на малюнку нижче:

введіть тут опис зображення

Я також зайшов у розширений розділ і додав .sqlрозширення файлу та виберіть Index Properties and File Contentsопцію. Це встановлює опис фільтра таким Plain Text Filter:

введіть тут опис зображення

Однак щоразу, коли я шукаю текст, який я б очікував знайти у .sqlфайлі, наприклад saw_order.Wo type:sql, він не повертає жодних файлів. Пошук є успішним , якщо я не буду в пошуках частини імені файлу, але ніколи його вміст .sqlфайлів.

Ці .sqlфайли є текстовими файлами , які можуть бути легко відкривати і редагувати з допомогою блокнота. Navicat просто додає певних функцій інтелігенції та організації, але крім цього, це звичайний текст.

Чому пошук Windows не може бачити вміст цих файлів?

Чи потрібно додати якийсь спеціальний плагін до пошуку Windows, щоб розпізнати ці файли?

ПРИМІТКА. Я використовую Windows Search 4.0 та Windows XP SP3.


Дивіться також superuser.com/questions/77772/…
RJFalconer

Відповіді:


7

Здається, у Windows Search є проблема з читанням формату файлу, навіть якщо він встановлений у простому тексті. Це відома проблема і її навіть виховували тут, на Суперусері !

Моя найкраща рекомендація наразі - використовувати програму, яка може шукати вміст файлів. Це може бути не таким швидким, як їх індексація, але, сподіваємось, це зможе виконати роботу за вас.

Я рекомендую чотири чудові інструменти:

Агент Рансак (безкоштовно):

alt текст

NirSoft SearchMyFiles (безкоштовний і портативний):

alt текст

Windows Grep :

alt текст

Портативний пошук файлів (безкоштовна програма):

alt текст


Дякуємо за пропозиції. Я дійсно віддаю перевагу інтегрованому рішенню, яке виправляє пошук на робочому столі Windows, але, можливо, я перегляну частину рекомендованого вами програмного забезпечення.
Бен Маккормак

Хоча я вважав за краще просто виправити пошук на робочому столі Windows, я дуже вдячний за час, який ви вклали у надання детальної відповіді. Мені доведеться перевірити деякі з цих інструментів. Дуже дякую!
Бен Маккормак

Ви, швидше ласкаво просимо!
Іван Т

4

Переконайтеся, що у вашому реєстрі є такі ключі у цьому місці:

Computer\HKEY_CLASSES_ROOT\.sql

[HKEY_CLASSES_ROOT\.sql]
"Content Type"="text/plain"
"PerceivedType"="text"

[HKEY_CLASSES_ROOT\.sql\PersistentHandler]
@="{5E941D80-BF96-11CD-B579-08002B30BFEB}"

Потім повторно встановити.


2

У випадку, якщо виникає проблема з самою індексацією, я б спробував сказати пошуку, щоб переглянути вміст неіндексованих файлів.

Перейдіть до будь-якого вікна Провідника і натисніть, Altа потім перейдіть до Інструменти> Параметри папки та натисніть на вкладку Пошук, поставте галочку в круговому варіанті:

введіть тут опис зображення


Я не вважаю, що ці параметри можна побачити таким чином у Windows XP (якщо це не було вимкнено на моєму ПК за допомогою групової політики, але я сумніваюсь у цьому).
Бен Маккормак

1

Багатьом пошуковим системам потрібен якийсь модуль, який часто називають "роз'ємом", щоб зрозуміти, як інтерпретувати файл.

Зауважу, що на скріншоті файл SQL вказаний як "Звичайний текст". Навіть незважаючи на те, що файл є просто звичайним текстом, пошук у Windows може очікувати, що файл .sql буде чимось іншим, ніж текст, і просто ігнорує його.

Щоб перевірити гіпотезу, зробіть копію файлу, змініть розширення на ".txt", а потім примусьте повторно індексувати.

Ще щось перевірити, можливо, за допомогою більш потужного текстового редактора (мій улюблений gVim - http://www.vim.org/download.php#pc ), щоб побачити, чи початкове "магічне число" файлу відрізняється від звичайний текстовий файл.


Я вважаю, що SharePoint використовує щось, що називається iFilter, а WDS може використовувати те саме, хоча я не впевнений. Я спробував gVim за вашою рекомендацією. З того, що я міг сказати, у файлах .sql проти файлів .txt нічого не здавалося. Однак я, можливо, не глянув на щось правильно.
Бен Маккормак

Бен Маккормак, ти спробував експеримент, який я запропонував?
pcapademic

1

У статті про помилку пошуку Windows XP зазначено:

Windows XP не здійснює пошук у всіх файлах, щоб підвищити ефективність пошуку та уникнути сторонніх результатів. Така поведінка виникає в тому випадку, якщо ви використовуєте послугу індексації під час пошуку. Тому Windows XP має відому проблему, коли не знаходить кількість типів файлів, коли ви шукаєте файли, що містять текст, або використовуючи параметр «Слово або фразу у файлі».

Це можна виправити для багатьох типів файлів, але не для всіх. Причиною є відсутність у реєстрі значення PersistentHandler для цього типу файлів.

Спосіб №1

Завантажте цей сценарій VB (Автор Дуг Нокс ). Збережіть файл, який ви тільки що завантажили, на свій жорсткий диск. Знайдіть щойно збережений файл та двічі клацніть по ньому. Введіть розширення файлу, яке ви хочете змінити. Якщо існує підпункт PersistentHandler, зміни не будуть вноситись. Якщо цього типу файлу не існує, Реєстр буде оновлено відповідно. Перезавантажте, коли закінчите типи файлів, які хочете змінити.

Спосіб №2

MS KB 309173 має ще одне виправлення цієї помилки. Щоб налаштувати Windows XP для пошуку всіх файлів незалежно від типу файлу, отримайте найновіший пакет оновлень для Windows XP (зараз SP2), а потім увімкніть типи файлів Index з опцією невідомих розширень.

Якщо ви використовуєте цей метод, Windows XP шукає всі типи файлів за вказаним вами текстом.

Це може вплинути на ефективність функції пошуку. Для цього див. Вказівки у вищенаведеній статті .


Я вдячний за ваше посилання на статтю, але жоден із методів, здається, не працює. Я запустив сценарій VB і ключ вже існував. Я змінив значення реєстру за пропозицією в методі №2, а потім переіндексував свої папки, і він все ще не працює. Можливо, ви маєте на увазі "Пошук в Windows" замість "Пошук на робочому столі Windows", який був розроблений для Vista, але випущений для XP ще до виходу Vista.
Бен Маккормак

Я вважаю, що посилання, які я дав, по суті є правильними, оскільки PersistentHandler для розширення .sql є неправильним і його потрібно замінити. Однак потрібно набагато більше досліджень, щоб знищити його.
harrymc


1

Я можу думати лише про дві речі:

  1. Самі файли ще не були проіндексовані (тому вони відображаються в біті пошуку файлу, а не в пошуку вмісту)

  2. Я також пропоную тест ... спробуйте помістити деякі файли SQL поза вашої папки програмних файлів і включити цю папку до списку індексованих місць. Можливо, у папках у програмних файлах є проблема з дозволом?


Дякуємо за пропозиції. Цей файл уже давно існує, і тому на моєму ПК працює пошук Windows. Я збираюся відновити весь індекс і побачити, чи це допомагає.
Бен Маккормак

Це не спрацювало: /. Індексація завершена, і досі не знайдено жодної відповідності.
Бен Маккормак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.