1. 程式人生 > >如何優化PrizmDoc以進行大型文件檢視和伺服器端搜尋

如何優化PrizmDoc以進行大型文件檢視和伺服器端搜尋

PrizmDoc是一款基於伺服器的優秀文件檢視器和編輯器,其新的大文件檢視和伺服器端搜尋功能允許使用者與包含數百或數千頁的源文件實現更快的互動。不過如何開啟和利用好這一功能值得仔細探討。本文旨在針對如何優化PrizmDoc以進行大型文件檢視和伺服器端搜尋進行介紹,供大家學習討論。


一般情況下PrizmDoc不會自動執行伺服器端搜尋,如果你是開發人員,建立或檢視會話時通過選擇clientSearch APIserverSearch API呼叫來指定是否要使用伺服器端搜尋選項。

儘可能使用檢視包來預轉換內容

通過儘可能預轉換內容,確保PrizmDoc在您的網站或應用程式上順利執行。在瀏覽器中快速載入大型文件最重要的事情是確保在終端使用者開始檢視文件之前,已經轉換為在瀏覽器中檢視。對於Microsoft Office文件尤其如此。

如果您使用的是PrizmDoc應用程式服務(PAS),可以利用檢視包功能全面預轉換整個文件,以便在瀏覽器中快速檢視。檢視包一旦建立將一直存在,直到您明確刪除它。並且它允許PrizmDoc應用程式服務簡單地返回文件的任何頁面的靜態內容,即使文件有數千頁。


使用伺服器端搜尋檢視大型文件

如上所述,PrizmDoc允許終端使用者輕鬆搜尋文件並通過伺服器端搜尋導航結果。伺服器端搜尋能夠將工作解除安裝到伺服器,並在結果可用時填充Viewing Client UI。這一新功能可以處理比以前更大的文件。

使用伺服器端搜尋有很多好處。以前版本的PrizmDoc可能無法轉換或提取大型文件中的所有文字,例如超過1000頁的PDF和超過250頁的Word文件。使用伺服器端搜尋模式,對大型文件的搜尋結果要快得多。

但是轉換大型文件非常耗費資源,特別是對於Office文件。例如一個1000頁的Word文件可能需要幾分鐘才能完成文字提取。在此期間,如果有三個或四個併發使用者(每個使用者轉換1000頁文件)將佔用該伺服器上的所有轉換資源。

在此期間嘗試轉換文件的後續使用者可能會遇到錯誤,直到完成的文字提取過程釋放系統資源。當資源過載時,這可能導致次優的使用者體驗。如果您經常使用大型文件,我們強烈建議使用具有大量核心的伺服器。


客戶端與伺服器端搜尋

理想情況下PrizmDoc會盡可能執行客戶端搜尋,並在必要時執行伺服器端搜尋。實際上我們根據頁數進行了有根據的猜測,在預設情況下,如果文件包含的頁數不超過80頁,Viewing Client

將執行客戶端搜尋。否則Viewing Client會將搜尋工作解除安裝到伺服器(啟用伺服器端搜尋時)。對於多種文件這個任意80頁的閾值都有效。但是如果您使用80頁或更少文件以及大量文字,或者終端使用者的瀏覽器特別受記憶體限制,您可能會發現此預設設定在將搜尋工作解除安裝到伺服器時響應不夠積極。

構建檢視器控制元件時,可以使用“Viewer Control Options”的searchMethodPageCountThreshold屬性調整文件在客戶端檢視切換到伺服器端搜尋之前可以擁有的最大頁數。此外您可以使用searchMethodType屬性強制Viewing Client僅使用伺服器端搜尋(或僅使用客戶端搜尋)。


使用API管理伺服器搜尋功能

1、clientSearch——PCCViewer.SearchRequest

在客戶端搜尋給定searchQuery的文件文字時需要從伺服器文字請求每個頁面,這對於較小的文件是有效,但對於大型文件使用PCCViewer.ViewerControlserverSearch方法更有效。

此查詢可以是單個搜尋詞,也可以是指定一個或多個詞選項的雜湊值。如果僅提供單個搜尋詞(字串),則使用預設選項非同步搜尋完成。返回的PCCViewer.SearchRequest物件提供進度事件和成員訪問的搜尋結果。

2、serverSearch——PCCViewer.SearchRequest

在伺服器端搜尋給定searchQuery的文件文字對於較大的文件是有效的,但對於較小的文件,使用PCCViewer.ViewerControlclientSearch方法更有效。

此查詢可以是單個搜尋詞,也可以是指定一個或多個詞選項的雜湊值。如果僅提供單個搜尋詞(字串),則使用預設選項非同步搜尋完成。返回的PCCViewer.SearchRequest物件提供進度事件和成員訪問的搜尋結果。


檢視原文出處>>