SourceOne Email Management:WebSearch 可能不會傳回完整的搜尋結果集
Summary: 網路搜尋可能不會傳回完整的搜尋結果集。
Symptoms
在全文索引搜索期間,可能不會將所有結果提交到 SourceOne 搜索資料庫。因此,搜尋結果可能不完整。
此問題可能不會影響每次搜索。此問題的發生將取決於全文索引中是否存在重複郵件以及返回這些結果的順序。在下列系統中,更有可能發生此問題:
- 全文索引中存在重複項目
- 「最大搜尋命中數執行緒」選項已啟用
- 存在就地遷移歸檔,其中來自多個 EmailXtender 伺服器的數據已遷移到單個 SourceOne 映射資料夾中。
Cause
Resolution
Dell EMC 建議客戶針對已安裝的 7.2 版本,套用下列其中一個 SourceOne Email Management 修補程式:
7.2 SP6 HF4 (7.2.6.6229)
7.2 SP7 或更新版本
您可以在 SourceOne Email Management 產品頁面上下載檔案,網址為:http://support.emc.com
安裝包含修正程式的 SourceOne Email Management 版本後,所有日後的搜尋都應完成,並包含所有結果。 運行受影響版本時執行的任何搜索都需要再次執行,以保證結果的完整性。
在 SourceOne Email Management 7.2.8 版中,可透過索引驗證來識別哪些索引集有重複或「額外項目」的內容。這些驗證結果可用於確定需要重新運行哪些搜索。執行下列步驟:
首先,使用模式 2 或更高版本配置索引驗證掃描。索引驗證會用黃色驚嘆號 (!) 標記問題索引集,索引的狀態將為「額外專案」。 如果掃描已在先前版本上執行,則可在 SourceOne Email Management 主控台中執行重新掃描,方法是在每個 YYYYMM 資料夾上按右鍵,然後選取「重新掃描」。 掃描完成後,必須先成功重建狀態為「額外專案」的所有索引,然後才能重新運行任何受影響的 SourceOne Web 搜索。
接下來的步驟是確定以前運行的任何潛在的 SourceOne Web 搜索,這些搜索可能會跨問題索引集進行搜索。
便條:以下 SQL 查詢假定 SourceOne 資料庫的名稱為預設名稱。如果不是,則需要使用 SourceOne 資料庫名稱的正確名稱修改查詢。
首先,若要識別在發生此問題時先前執行過的任何過去 SourceOne Web 搜尋,請執行下列 SQL 查詢:
1。執行下列查詢,以擷取 SourceOne 環境的安裝日期和升級日期:
use ES1Archive
select EndTime into #TEMP from [DBMaintenanceHistory] where (version >=7 and version <7.27000) and Description = 'SourceOne Archive database update complete'
insert into #TEMP select EndTime from [DBMaintenanceHistory] where Description = 'New SourceOne Native Archive database created' and Version >=7 and Version < 7.27000
GO
2.執行下列查詢,以收集根據步驟 1 中擷取的日期執行之 SourceOne Web 搜尋的所有資訊:
use ES1Activity;
with cte as(
select ActivityID as activityid,TaskTypeID,Name as SearchName,search.value('(@searchOperation)[1]','varchar(max)') as operation, search.value('(.)[1]','varchar(max)') as daterange,
xConfig.value('(/SearchJobConfig/QueryString/SearchCriteria/@displayName)[1]','nvarchar(max)') as SearchUser from Activity
cross apply xConfig.nodes('/SearchJobConfig/QueryString/SearchCriteria/ExpressionSet/SimpleAttributeExpression') as ref(search)
where xConfig is not null --and --TaskTypeID = 8
and search.value('(@displayName)[1]','varchar(max)') = 'Date')
select activityid,TaskTypeID,SearchUser,SearchName, 'StartDate' = Replace(CASE
WHEN min(daterange) = max(daterange) THEN 'ALL'
ELSE min(daterange) END,'T',' '), 'EndDate' = Replace(CASE
WHEN min(daterange) = max(daterange) THEN 'ALL'
ELSE max(daterange) END,'T',' ') into #SearchDates from cte
group by activityid,TaskTypeID,SearchUser,SearchName
3.運行以下查詢以輸出有關可能受影響的搜索的所有資訊。輸出將包括有關 SourceOne Web 搜尋的基本資訊,包括:
| 搜尋名稱: | SourceOne Email Management Console\Operations\Job Management 視窗中顯示的搜尋名稱。 |
| 工作 ID: | 在 SourceOne Email Management Console 的「工作管理」視窗中找到的 JobID 值。 |
| 開始時間: | 執行搜索的日期\時間。 |
| 搜尋開始\結束日期: | 搜索中使用的日期條件。如果搜尋中未使用任何日期欄位,則會搜尋「所有日期」。 |
| 正在執行使用者: | 創建並運行搜索的使用者。 |
use ES1Activity
select distinct A.Name as SearchName,J.JobID,A.StartTime,S.StartDate as [Search Start Date],
S.EndDate as [Search End Date], S.SearchUser as [Executing User] from Activity A
join Tasks T on A.ActivityID = T.ActivityID
join Jobs J on T.TaskID = J.TaskID
join #SearchDates S on (S.ActivityID = A.ActivityID)
where A.TaskTypeID =8 and A.StartTime > (select min(EndTime) from #TEMP) and A.StartTime < (select max(EndTime)from #TEMP)
order by A.StartTime
GO
drop table #TEMP
drop table #SearchDates
GO
注意:只有在完成索引驗證後,才能繼續執行以下步驟。
接下來,若要識別有問題的 SourceOne 索引集及其狀態,請執行下列 SQL 查詢:
1.執行下列查詢,以擷取 SourceOne 環境的安裝日期和升級日期:
use ES1Archive
select EndTime into #TEMP from [DBMaintenanceHistory] where (version >=7 and version <7.27000) and Description = 'SourceOne Archive database update complete'
insert into #TEMP select EndTime from [DBMaintenanceHistory] where Description = 'New SourceOne Native Archive database created' and Version >=7 and Version < 7.27000
GO
2.執行下列查詢,以隨時擷取任何標示為「額外項目」的 SourceOne 索引:
use ES1Archive
select WorkID,CmdType,cast(CmdParam as XML).value('(/WQ_Parms/WQ_FolderId/node()) [1]', 'bigint') as FolderID,cast(CmdParam as XML).value('(/WQ_Parms/WQ_FldrPath/node()) [1]', 'nvarchar(max)') as [Archive_Index Path],LastModified as ScanDate, SUBSTRING(ResultStr,(CHARINDEX( 'indexflags(', ResultStr, 0)+11),(CHARINDEX( ')', ResultStr, (CHARINDEX( 'indexflags(', ResultStr, 0)+11) )-(CHARINDEX( 'indexflags(', ResultStr, 0)+11))) as ResultStr,'Result' = CAST('Extra Items' as varchar(50))
into #ExtraItems
from WorkQueue
where CmdType =17 and (CHARINDEX( 'indexflags(', ResultStr, 0) > 0 and (CAST(SUBSTRING(ResultStr,(CHARINDEX( 'indexflags(', ResultStr, 0)+11),(CHARINDEX( ')', ResultStr, (CHARINDEX( 'indexflags(', ResultStr, 0)+11) )-(CHARINDEX( 'indexflags(', ResultStr, 0)+11))) as bigint) & CAST( 65536 as bigint) ) > 0)
GO
3.執行下列查詢,以擷取在發生問題時重新建置的任何 SourceOne 索引:
use ES1Archiveselect WorkID,CmdType,cast(replace(replace(CmdParam,'<WQ_Parms><WQ_FldrPath>',''),'</WQ_FldrPath></WQ_Parms>','') as nvarchar(max)) as [Archive_Index Path], min(LastModified) as [Rebuild Date], 'Result' = CASE WHEN CmdType=1 THEN 'Rebuilt' ELSE 'Unknown' END into #Rebuilt from WorkQueue (nolock) where CmdType = 1 and (LastModified >= (select min(EndTime) from #TEMP) and LastModified < (select max(EndTime) from #TEMP))group by WorkID,CmdParam,CmdType order by CmdParam,CmdTypeGOupdate #Rebuilt set [Archive_Index Path] = replace([Archive_Index Path],char(13),'')update #Rebuilt set [Archive_Index Path] = replace([Archive_Index Path],char(10),'')GOset IDENTITY_Insert #ExtraItems ONinsert into #ExtraItems (WorkID,CmdType,[Archive_Index Path],ScanDate,Result)select * from #Rebuilt where NOT EXISTS(select * from #ExtraItems where #ExtraItems.[Archive_Index Path] = #Rebuilt.[Archive_Index Path])GO
4.執行下列查詢,以擷取升級至 SourceOne 7.2 SP8 後,在索引驗證程序中驗證失敗或遺失的任何 SourceOne 索引:
use ES1Archive
select replace(FP.path,'\FPROOT\','') + CASE
WHEN LEN(FT.IndexNum) = 1 THEN ('00' + CAST(FT.IndexNum AS VarChar(20)))
WHEN LEN(FT.IndexNum) = 2 THEN ('0' + CAST(FT.IndexNum AS varchar(20)))
WHEN LEN(FT.IndexNum) = 3 THEN CAST(FT.IndexNum AS varchar(20)) END as [Archive_Index Path] into #IndexList
from FTIndex FT
join FolderPlan FP on FT.FolderNodeID = FP.FolderID
EXCEPT
select replace(FP.path,'\FPROOT\','') + CASE
WHEN LEN(FT.IndexNum) = 1 THEN ('00' + CAST(FT.IndexNum AS VarChar(20)))
WHEN LEN(FT.IndexNum) = 2 THEN ('0' + CAST(FT.IndexNum AS varchar(20)))
WHEN LEN(FT.IndexNum) = 3 THEN CAST(FT.IndexNum AS varchar(20)) END as [Archive_Index Path]
from FTIndex FT
join FolderPlan FP on FT.FolderNodeID = FP.FolderID
where (FT.LastScanDate > (select Max(Date) from DBMaintenanceHistory where Description = 'SourceOne Archive database update complete' and Version > 7.27))
GO
set IDENTITY_Insert #ExtraItems ON
insert into #ExtraItems (WorkID,CmdType,[Archive_Index Path],Result)
select '0','17',[Archive_Index Path],'Result'='Not-Validated' from #IndexList
WHERE NOT EXISTS (select * from #ExtraItems where #ExtraItems.[Archive_Index Path] = #IndexList.[Archive_Index Path])
GO
5.執行此最終查詢時,會輸出所有可能受影響的 SourceOne 索引。任何針對索引運行的搜索都標記為「額外專案」 需要重新執行才能獲得正確的結果。針對「重建」索引運行的任何搜索都可能需要重新執行,因為索引的重建本來可以解決,但取決於針對重建索引集運行搜索的時間。
select WorkID,[Archive_Index Path],ScanDate as Date,Result from #ExtraItems where Result !='Validated'
GO
drop table #TEMP
drop table #Rebuilt
drop table #ExtraItems
drop table #IndexList
GO
Additional Information
| https://downloads.dell.com/TranslatedPDF/PT-BR_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/ZH-CN_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/ES_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/DE_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/FR_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/IT_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/JA_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/NL_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/KO_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/RU_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/PT_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/SV_KB535700.pdf |