2014-08-29 17 views
0

我在Orchard中有一個名爲Default的索引,alll被porperly配置o索引一些常用部分和我編碼的部分。使用lucene的果園索引被延遲

當我重建索引時,它始終顯示索引爲0的文檔。

無論我做什麼我都可以打更新100次索引顯示總是0個文件。

經過一段時間(我不能說完全......大約一小時後)如果我去索引它是用我的12567文件重建。

也許這是每個人所設計,但我不明白這一點...

我的猜測是,由於該指數的重建可能在短期或時間和資源成本計劃於低優先級和我有隻是等待過程。

有沒有辦法強制立即完成重建?

的原因是,如果我發現了一個bug在我的處理程序OnIndexing我要等待一個小時,看看我的修復效果...

任何想法?

回答

1

是的,索引是一個相對較重的操作,在後臺線程上執行。這樣做的課程是IndexingBackgroundTask,發現在Orchard.Indexing.Services。我認爲,執行後臺任務的頻率最近在單個Orchard實例中有數百個租戶時處理可伸縮性問題。這在Config/Sites.config中配置。尋找XML的這一點:

<component instance-scope="single-instance" 
      type="Orchard.Tasks.SweepGenerator" 
      service="Orchard.Tasks.ISweepGenerator"> 
    <properties> 
     <property name="Interval" value="00:01:00" /> 
    </properties> 
</component> 

如果您瞭解含有大量租戶的情況下的含義,您可以將間隔值更改爲更小的值。

+0

很棒....在我的情況下,我只是一個大的網站,但根本沒有租戶。我會嘗試一個更小的間隔。 – manudea 2014-09-01 08:06:05

+0

所以value =「00:01:00」是0days,1hour,0minutes? – manudea 2014-09-01 14:01:16

+0

不,實際上你會看到一個小時的延遲,這很奇怪。配置文件的格式描述如下:https://github.com/autofac/Autofac/wiki/Xml-Configuration,使用標準的.net反序列化邏輯對屬性值進行反序列化。在這種情況下,Interval是TimeSpan,其標準格式如下所示:http://msdn.microsoft.com/en-us/library/se73z7b9(v=vs.110).aspx。所以00:01:00實際上是一分鐘。 – 2014-09-01 23:54:33