SourceOne Eメール管理:WebSearch では、検索結果の完全なセットが返されない場合があります

Summary: WebSearchは、検索結果の完全なセットを返さない場合があります。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms


全文索引検索中に、すべての結果がSourceOne Searchデータベースにコミットされない場合があります。その結果、検索結果が不完全になる可能性があります
この問題は、すべての検索に影響するとは限りません。この問題が発生するかどうかは、フルテキスト インデックスに重複するメッセージが存在するかどうか、およびそれらの結果が返される順序によって異なります。この問題は、次のようなシステムで発生する可能性が高くなります。

  • フルテキスト インデックスに重複するアイテムが存在します
  • MaxSearchHitsThreads オプションが有効になっています
  • インプレース移行アーカイブは、複数のEmailXtenderサーバーからのデータが単一のSourceOneマップ済みフォルダに移行された場所に存在します。   

Cause

SourceOne Web検索を実行すると、検索プロセスは、インデックス内の検索条件(ヒット)に一致するものを探します。  ヒット数が5000に達するか、検索が完了すると、結果はSQLトランザクションを介してSourceOne Search SQLデータベースに投稿されます。  トランザクションに重複するエントリ (同じマップされたフォルダーからの同じメッセージ、同じ検索に対して同じトランザクションまたは以前のトランザクションによって既にポストされたヒットのメッセージ) が含まれている場合は、主キー違反エラーが返され、トランザクションはロールバックされます。  ロールバックされたトランザクションに含まれるヒットは、検索の結果セットに追加されません。

Resolution

インストールされているバージョン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以上を使用してインデックス検証スキャンを構成します。インデックスの検証では、問題のあるインデックス セットに黄色の感嘆符 (!) のフラグが付けられ、インデックスの状態は "Extra Items" になります。  以前のリリースでスキャンが実行されている場合は、各YYYYMMフォルダーを右クリックして[再スキャン]を選択することで、SourceOne Email Managementコンソールで再スキャンを実行できます。  スキャンが完了したら、影響を受ける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の[Job Management]ウィンドウに表示される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 ES1Archive
select 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,CmdType
GO
update #Rebuilt set [Archive_Index Path] = replace([Archive_Index Path],char(13),'')
update #Rebuilt set [Archive_Index Path] = replace([Archive_Index Path],char(10),'')
GO
set IDENTITY_Insert #ExtraItems ON
insert 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

Affected Products

SourceOne Email Management

Products

SourceOne, SourceOne Email Management
Article Properties
Article Number: 000055328
Article Type: Solution
Last Modified: 27 Jun 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.