2012-10-11 43 views
1

1)的文件夹与所述手动地或明确地在索引与雷鸟Gloda GlodaIndexer

document.getElementById("tabmail").openTab("chromeTab", { 
    chromePage: “indexWithGloda.html”, 
}); 

2打开新的标签页)文件indexWithGloda.html有一个按钮与点击数甚至应该开始索引。

function onClickStartIndexingWithGloda() 
{ 
    var inboxFolder = getInboxFolder(); // Find the inbox folder 
    GlodaMsgIndexer.indexFolder(inboxFolder, ["force"]); 
    var job = GlodaIndexer._indexQueue.pop(); 
    GlodaMsgIndexer._worker_folderIndex(job); 
} 

// Adding a messenger lazy getter to the MailServices even though it's not a service 
XPCOMUtils.defineLazyGetter(MailServices, "messenger", function() { 
    return Cc["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger); 
}); 

function getInboxFolder() { 
    var inbox = null; 
    var accounts = [x for each (x in fixIterator(MailServices.accounts.accounts, Ci.nsIMsgAccount))].filter(function (x) x.incomingServer); 

    var server = accounts[0].incomingServer; 
    var folder = server.rootFolder; 

    var searchForInbox = function(folder) { 
     var isInbox = folder.getFlag(Ci.nsMsgFolderFlags.Inbox); 
     if (isInbox) { 
      inbox = folder; 
     } 
     else if (folder.hasSubFolders) { 
      for each (var subFolder in fixIterator(folder.subFolders, Ci.nsIMsgFolder)) 
       searchForInbox(subFolder); 
     } 
    } 
    searchForInbox(folder); 
    return inbox; 
} 

的问题是,在功能上onClickStartIndexingWithGloda()通话GlodaMsgIndexer._worker_folderIndex(job);并没有真正启动索引。我想它应该以某种异步方式调用,但我不知道如何异步启动它。我非常感谢这里的任何帮助。还有一个问题,如果该文件夹已经被编入索引,这种方法会工作吗?如果不是,那么重新索引已经索引的文件夹需要做什么?

回答

1

无论是文件夹索引与否取决于:

  • 用户的总体偏好(mailnews.database.global.indexer.enabled)
  • 的每个文件夹的偏好是通过右键单击访问一个文件夹,然后点击属性,然后选择“在全局搜索结果中包含此文件夹”。

所以我不认为你应该强制索引一个文件夹:Gloda能够自动计算消息添加到一个文件夹,并索引他们相应。

你能告诉我更多关于你试图达到的目标吗?

编辑:你要找的链接可能是

+0

我准备演示/试验,需要有一种方法,使Gloda指数特定时刻的特定文件夹 - 当我按下按钮时。我需要将索引编制为手动控制,以便我可以显示索引的进度如何。 – feradz

+0

在这种情况下,您完全想要将gloda索引逻辑短路。我建议你看看我们在树上的测试框架,看看如何将gloda转换到“测试模式”,在那里它不会变得聪明,并且自己搞清楚。然后,您应该能够手动通知它来运行“文件夹索引扫描”(这是您在源文件中需要grep的东西)。 –

+0

我已经添加了链接,作为我早期答案的一部分。 –