В настоящее время прожектор будет искать только заголовки файлов docx, а не их содержимое. Есть ли способ это исправить?
2 ответа
Да, есть способ. Мой ответ основан на этой дискуссии в сообществах Apple. Мое резюме:
Есть два основных импортера для документов Office.
/ Библиотека / В центре внимания / Microsoft Office.mdimporter
/System/Library/Spotlight/RichText.mdimporter
Оба включены в MacOS, и импортер Microsoft Office был обновлен в последних обновлениях MacOS (я проверил 10.12.4 и 10.12.5).
По умолчанию, когда Word изменяет документ, используется импортер MS. И в этом проблема! Импортер Apple работает правильно.
Вы можете видеть, что ваши документы появляются и исчезают в поиске Spotlight, выполнив следующие две команды:
$ mdimport -d1 [путь к документу]
При этом используется системный импортер по умолчанию /System/Library/Spotlight/RichText.mdimporter, и документ отображается в центре внимания.
$ mdimport -d1 -g /Library /Spotlight /Microsoft\ Office.mdimporter [путь к docx]
И документ исчезает из Spotlight.
Решения проблемы:
- Напишите скрипт, который вы запускаете каждый час для переиндексации любого нового .docx
- Удалите средство импорта Microsoft / Библиотека / Spotlight / Microsoft Office.mdimporter
Я удалил импортер Microsoft. И я должен помнить, чтобы удалить его после каждого обновления Office.
Предупреждение: если вы удалите импортер Microsoft, Spotlight больше не индексирует содержимое файлов Excel!
Обратите внимание, я не доволен этим ответом. Я скопировал импортер Microsoft Office с моего MacBook (где индексация работала правильно) на мой рабочий стол (где он не работал), и теперь все новые или измененные документы проиндексированы правильно. Оба работают 10.12.5. И то, и другое выдает ошибки несоответствия архитектуры, когда документы индексируются с помощью mdimport в Терминале.
Из того, что я прочитал здесь и в сообществах Apple, я понял, что проблема в том, что /Library /Spotlight /Microsoft Office.mdimporter используется для индексации файлов docx, что он не обрабатывает должным образом. Удаление импортера устраняет проблему, но нарушает индексацию старых файлов Word (.doc) и Excel. Явный вызов mdimport также имеет место, но должен выполняться каждый раз, когда файл изменяется. Я не уверен, как Spotlight решает, какой импортер использовать для обработки файлов определенных типов, но в info.plist для некорректно работающего Microsoft mdimporter я нашел упоминание о docx. Я сделал резервную копию Info.plist, удалил элемент массива, описывающий docx (…):
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>Microsoft Word document</string>
<key>UTTypeIdentifier</key>
<string>com.microsoft.word.openxml.document</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>WXBN</string>
<key>public.filename-extension</key>
<array>
<string>docx</string>
</array>
<key>public.mime-type</key>
<string>application/vnd.openxmlformats-officedocument.wordprocessingml.document</string>
</dict>
</dict>
и сохранил. Тем не менее, вновь созданные или отредактированные файлы DOCX по-прежнему не были доступны для поиска в центре внимания. Я не был уверен, что сделанные мной изменения были замечены в центре внимания, поэтому я перезагрузил свой Mac, все тот же. Наконец я изменил дату изменения в mdimporter (touch /Library/Spotlight/Microsoft\ Office.mdimporter
). После этого файлы docx, которые я создаю и изменяю, быстро индексируются автоматически. Я не уверен, продлится ли это решение и будет ли оно переживать обновления программного обеспечения.