在更新到Lion后,为什么Spotlight会继续为系统重新编制索引?


15

自从我安装Lion以来,Spotlight数据库一直在重新编制索引(这需要几个小时)。它至少每隔一天执行一次。

是否有其他用户在使用Lion时遇到此问题(即是否只是10.7.0错误)?如果不是,我如何诊断造成该问题的原因-在控制台中看不到可疑条目?

能够重置聚光灯历史记录并对其进行重建很高兴知道。


4
请参阅:superuser.com/questions/46195/…,其中显示了一种技术,该技术可以确定哪个文件在索引编制中失败。
安德鲁·维特

Answers:


15

我升级到Lion后,也发生了重新索引问题。但是,并非每个用户都存在该问题,只是每个使用FileVault 1的用户都没有。

几个星期后,我得到沮丧,然...†

$ sudo mdutil -a -i off

……在终端机上-当天我意识到该设置已在系统范围内应用。我耸了耸肩,享受了几个小时的免费索引免费会话,之后我决定重新打开Spotlight,因为这对于我的其他用户帐户的工作流程至关重要。所以:

$ sudo mdutil -a -i on

当我这样做时,我决定擦除旧索引,并使用以下方法从头开始重建新索引:

$ sudo mdutil -aE

我大约一个月前做了此操作,此后就再也没有遇到过“无用的”重新索引。我很惊讶,因为解决此问题只是一个巧合。

因此,您是否尝试过将其关闭然后再次打开?


†)该-a标志会将操作应用于所有 您可能不需要的,实际上也不是我想要的,但是我只是想对此事进行快速讨论。


要注意赏金:很抱歉,我在没有 SSD的iMac上,但是无论如何,它可能可以解决问题。
加里·基纳嫩(JariKeinänen)2011年

3
这就是我要建议的。对于真正的偏执狂,请使用sudo rm -rfv /.Spotlight-V100
TJ Luoma

这么奇怪。我星期五刚升级到Lion,Spotlight死了。昨天尝试mdutil无效,然后今天再尝试一次,瞧!重新索引。奇怪...
瓦利安(Valien)2012年

10

我想通了。其中一个引人注目的插件引起了错误,对此控制台日志进行了更仔细的审查。

我通过查看发现了哪个应用导致了问题

/Library/Logs/DiagnosticReports

在那里,我发现了mdworker(后端到Spotlight)的一些崩溃报告。所有崩溃都是由同一个应用程序插件引起的。我现在已经从系统中删除了该插件。


但是,您使用的是哪个插件?
詹森·萨拉兹

2
Mathematica(较早的版本-当前版本可以)。
dan8394 2011年

3

新理论:我的系统驱动器空间不足,有时可用空间只有几百MB。当操作系统检测到这种情况时,它将删除Spotlight索引。当我再次释放空间时,它必须重建索引。


我也一直在经历。我不知道在10.6中是否也发生了同样的情况,因为我同时切换到了SSD和Lion。
Lri 2011年

我也遇到了空间不足的问题,并且我认为它已经在Snow Leopard(10.6)上发生过。问题是Lion删除了索引(我想是为了防止空间用完),但是第二个索引被删除后,它开始重新创建,最后又一次又一次导致相同的问题(而不是暂时关闭Spotlight)直到解决空间不足的情况为止)。
里卡多·桑切斯·塞兹

2

@ koiyu,@ TJ Luoma-这是您的两个答案的结合,使我的2010年末MacBook Air(SSD)过热和夜间崩溃。

我将您的答案合并到一个我叫的脚本中mdutil_rebuild.sh。将其另存为“ whatever_name_you_like.sh”,然后使用从终端运行它sh whatever_name_you_like.sh。Fyi-对我而言,在我的计算机上重建〜130GB索引大约需要7个小时。如果您需要所有处理器来完成任何事情,那么一整夜可能值得这样做。

#!/bin/sh

#  Force rebuild the spotlight index from scratch.
#    Compiled on 12-14-2012 in response to runaway 
#    reindexing processes from answers by @koiyu
#    and @TJ Luoma.
#
#  Ask Different Question: http://bit.ly/SYTE1j 

# Turn off spotlight.
  sudo mdutil -a -i off

# Remove the index files.
  sudo rm -rfv /.Spotlight-V100

# Turn on spotlight.
  sudo mdutil -a -i on

# Reindex all mounted /Volumes
  sudo mdutil -aE

1

我在调查同一问题时发现了两件事:

32位Spotlight进口商

这似乎是mds和mdworker(Spotlight背后的系统进程)跳闸且未能完成索引的原因之一。(并且可能解释了神秘的“无法与lsboxd对话”消息。)由于mds和mdworker是64位进程,因此它可能无法与较旧的32位Spotlight Importers一起使用(我在系统上发现了3个)。

要查找是否有,请使用Terminal.app并输入以下命令: mdimport -L

这将为您提供路径列表,您可以在其中找到每个Spotlight导入器(某些嵌入在第三方应用程序中)。使用Finder的“转到文件夹...”命令打开每个Spotlight导入器的封闭文件夹。在Finder中,每一个上的“获取信息”以查看其是否显示“(32位)”。我将它们移到废纸tried,并尝试了上面建议的过程,它似乎更好地工作。

重建Mail.app邮箱

这最终使Spotlight能够索引以前尝试中未包括的电子邮件,即使遵循上述建议和其他建议的过程也是如此。仅在Mail.app重建邮箱之后,Spotlight才开始从这些位置返回搜索结果。


0

尝试转到磁盘实用程序,选择硬盘并修复权限。这为我解决了一个相关的聚光灯问题。


0

马上就可以做的两个非常简单的事情-常常为我减轻这种Spotlight的恶作剧。

1:首先,如果您具有root权限... sudo killall mds从终端..这将杀死“ mds”进程..(元数据搜索器??),这将使您摆脱各种X,Y或Z混乱插件,文件,或诸如此类的东西摆在首位的是由聚光灯发牢骚.. 队现在退出,后来排查 ...这就是我的父亲总是说。开个玩笑,我是个孤儿。

或

2:获得更多行人解决方案。.打开聚光灯偏好,然后a:删除所有未编入索引的“私有”项目... b:如果您想重置音量索引。我相信您可以通过实际添加您的启动驱动器到该列表,关闭并重新打开系统配置文件,然后从隐私列表中删除您前面提到的“ Macintosh HD” ...这将为驱动器重新编制索引。哦!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.