SourceOne Email Management : WebSearch peut ne pas renvoyer un ensemble complet de résultats de recherche

Summary: WebSearch peut ne pas renvoyer un ensemble complet de résultats de recherche.

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


Lors d’une recherche d’index en texte intégral, il se peut que tous les résultats ne soient pas validés dans la base de données SourceOne Search. Par conséquent, les résultats de la recherche peuvent être incomplets.
Ce problème peut ne pas affecter toutes les recherches. L’apparition de ce problème dépend de l’existence de messages dupliqués dans l’index de texte intégral et de l’ordre dans lequel ces résultats sont renvoyés. Ce problème est plus susceptible de se produire sur les systèmes où :

  • Des éléments en double existent dans l’index de texte intégral
  • L’option MaxSearchHitsThreads a été activée
  • Il existe des archives de migration sur place où les données de plusieurs serveurs EmailXtender ont été migrées dans un seul dossier mappé SourceOne.   

Cause

Lors de l’exécution d’une recherche sur le Web SourceOne, le processus de recherche recherche des correspondances avec les critères de recherche, ou occurrences, dans l’index.  Une fois que le nombre d’occurrences atteint 5 000 ou que la recherche est terminée, les résultats sont publiés dans la base de données SQL SourceOne Search via une transaction SQL.  Si la transaction contient une entrée en double, le même message du même dossier mappé, d’un accès déjà publié par la même transaction ou une transaction précédente pour la même recherche, une erreur de violation de clé primaire est renvoyée et la transaction est annulée.  Les correspondances contenues dans la transaction annulée ne seront pas ajoutées à l’ensemble de résultats de la recherche.

Resolution

Dell EMC recommande aux clients d’appliquer l’un des correctifs SourceOne Email Management suivants pour la version 7.2 installée :

7.2 SP6 HF4 (7.2.6.6229)
7.2 SP7 ou version ultérieure

Les téléchargements sont disponibles sur la page produit SourceOne Email Management à l’adresse : http://support.emc.com

Une fois qu’une version de SourceOne Email Management avec le correctif est installée, toutes les recherches futures sont censées se terminer avec tous les résultats.  Toutes les recherches effectuées lors de l’exécution d’une version affectée devront être réexécutées pour garantir l’exhaustivité des résultats.

Dans la version 7.2.8 de SourceOne Email Management, il peut être possible d’identifier les ensembles d’index qui ont du contenu en double ou des « éléments supplémentaires » via la validation d’index. Ces résultats de validation peuvent être utilisés pour identifier les recherches qui doivent être exécutées à nouveau. Effectuez les opérations suivantes :  

Tout d’abord, configurez l’analyse de validation d’index à l’aide du Mode 2 ou supérieur. La validation d’index signale les jeux d’index problématiques par un point d’exclamation jaune ( !) et l’index est à l’état « Extra Items ».  Si des analyses ont été exécutées sur une version précédente, une nouvelle analyse peut être exécutée dans la console SourceOne Email Management en cliquant avec le bouton droit de la souris sur chaque dossier AAAAMM et en sélectionnant « Relancer l’analyse ».  Une fois les analyses terminées, tous les index dont l’état est « Extra Items » doivent être reconstruits avec succès avant que les recherches sur le Web SourceOne concernées ne soient réexécutées.

Les étapes suivantes consistent à identifier toutes les recherches Web SourceOne potentielles qui ont été précédemment exécutées et qui auraient potentiellement effectué une recherche dans un ensemble d’index de problèmes.

NOTE: Les requêtes SQL ci-dessous supposent que le nom des bases de données SourceOne est par défaut. Si ce n’est pas le cas, la requête doit être modifiée avec le nom correct des noms de base de données SourceOne.

Tout d’abord, pour identifier les recherches sur le Web SourceOne précédemment exécutées au moment de ce problème, exécutez les requêtes SQL suivantes :

1. Exécutez la requête suivante pour capturer la date d’installation et les dates de mise à niveau de l’environnement 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. Exécutez la requête suivante pour rassembler toutes les informations sur les recherches Web SourceOne exécutées en fonction des dates récupérées à l’étape 1 :
 

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. Exécutez la requête suivante pour générer toutes les informations concernant les recherches susceptibles d’être affectées. Le résultat comprendra des informations de base sur SourceOne Web Search, notamment : 
 

Nom de la recherche : Nom de la recherche tel qu’il apparaît dans la fenêtre SourceOne Email Management Console\Operations\Job Management.
ID de tâche : Valeur JobID trouvée dans les fenêtres Job Management de la console SourceOne Email Management.
Heure de début : Date/heure d’exécution de la recherche.
Search Start\End Date : Critère de date utilisé dans la recherche. Si aucun champ Date n’a été utilisé dans la recherche, TOUTES les dates ont été recherchées.
Utilisateur exécutant : L’utilisateur qui a créé et exécuté la recherche.
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


Remarque : Ne passez aux étapes suivantes qu’une fois la validation de l’index terminée.

Ensuite, pour identifier les ensembles d’index SourceOne problématiques et leurs états, exécutez les requêtes SQL suivantes :


1. Exécutez la requête suivante pour capturer la date d’installation et les dates de mise à niveau de l’environnement 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. Exécutez la requête suivante pour capturer tous les index SourceOne qui ont été, à tout moment, marqués comme « Éléments supplémentaires » :

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. Exécutez la requête suivante pour capturer tous les index SourceOne qui ont été reconstruits au moment du problème : 

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. Exécutez la requête suivante pour capturer tous les index SourceOne dont la validation a échoué ou qui ont été manqués pendant le processus de validation de l’index après la mise à niveau vers SourceOne 7.2 SP8 :

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. L’exécution de cette dernière requête produira tous les index SourceOne potentiellement affectés. Toutes les recherches effectuées sur des index marqués comme « Éléments supplémentaires » doivent être réexécutées pour obtenir les résultats corrects. Toutes les recherches effectuées sur des index « reconstruits » devront peut-être être réexécutées, car la reconstruction d’un index aurait été résolue, mais cela dépend du moment où la recherche a été exécutée sur l’ensemble d’index reconstruit.

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

Ce contenu est traduit dans d’autres langues : 
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.