SourceOne Email Management: WebSearch kanske inte returnerar en fullständig uppsättning sökresultat

Summary: Webbsökningen kanske inte returnerar en fullständig uppsättning sökresultat.

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


Under en fulltextindexsökning kan det hända att alla resultat inte sparas i SourceOne Search-databasen. Följaktligen kan sökresultaten vara ofullständiga.
Det här problemet kanske inte påverkar alla sökningar. Förekomsten av det här problemet beror på förekomsten av dubbletter av meddelanden i fulltextindexet och i vilken ordning dessa resultat returneras. Det här problemet är mer sannolikt att uppstå på system där:

  • Det finns dubbletter av objekt i fulltextindexet
  • Alternativet MaxSearchHitsThreads har aktiverats
  • Det finns arkiv för migration på plats där data från flera EmailXtender-servrar har migrerats till en enda SourceOne-mappad mapp.   

Cause

När du kör en webbsökning i SourceOne kommer sökprocessen att leta efter matchningar till sökkriterierna, eller träffarna, i indexet.  När antalet träffar når 5000, eller sökningen är klar, publiceras resultaten i SourceOne Search SQL-databasen via en SQL-transaktion.  Om transaktionen innehåller en dubblettpost, samma meddelande från samma mappade mapp, av en träff som redan har publicerats av samma eller tidigare transaktion för samma sökning, returneras ett fel om primärnyckelöverträdelse och transaktionen återställs.  De träffar som finns i den återställda transaktionen läggs inte till i sökresultatet.

Resolution

Dell EMC rekommenderar att kunder installerar en av följande SourceOne-korrigeringsfiler för e-posthantering på version 7.2 som är installerad:

7.2 SP6 HF4 (7.2.6.6229)
7.2 SP7 och högre

Nedladdningar finns tillgängliga på produktsidan för SourceOne Email Management på: http://support.emc.com

När en version av SourceOne Email Management med korrigeringen har installerats förväntas alla framtida sökningar slutföras med alla resultat.  Alla sökningar som utförs när du kör en berörd version måste köras igen för att garantera att resultaten blir fullständiga.

I SourceOne Email Management version 7.2.8 kan det vara möjligt att identifiera vilka indexuppsättningar som har duplicerat innehåll eller "Extra Items"-innehåll genom indexvalidering. Dessa valideringsresultat kan användas för att identifiera vilka sökningar som behöver köras igen. Följ nedanstående anvisningar:  

Konfigurera först genomsökningen av indexvalidering med läge 2 eller högre. Indexvalidering flaggar problemindexuppsättningar med ett gult utropstecken (!) och indexets status blir "Extra Items".  Om skanningar har körts på en tidigare version kan en ny skanning utföras i SourceOne Email Management-konsolen genom att högerklicka på varje YYYYMM-mapp och välja "Rescan".  När genomsökningarna har slutförts måste alla index med statusen "Extra objekt" återskapas innan eventuella berörda SourceOne-webbsökningar körs igen.

Nästa steg är att identifiera eventuella SourceOne-webbsökningar som tidigare kördes och som potentiellt skulle ha sökt i en problemindexuppsättning.

NOT: SQL-frågorna nedan förutsätter att namnet på SourceOne-databaserna är standard. Om de inte är det måste frågan ändras med rätt namn på SourceOne-databasnamnen.

För att identifiera eventuella tidigare SourceOne-webbsökningar som kördes tidigare under tiden för det här problemet kör du först följande SQL-frågor:

1. Kör följande fråga för att samla in installationsdatum och uppgraderingsdatum för SourceOne-miljön:

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. Kör följande fråga för att samla in all information om SourceOne-webbsökningarna som kördes baserat på de datum som hämtades i steg 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. Kör följande fråga för att mata ut all information om de sökningar som eventuellt påverkas. Resultatet kommer att innehålla grundläggande information om SourceOne Web Search, inklusive: 
 

Söknamn: Namnet på sökningen så som den visas i fönstret SourceOne Email Management Console\Operations\Job Management.
Jobb-ID: JobID-värdet som finns i jobbhanteringsfönstren i SourceOne Email Management Console.
Starttid: Datum\tid då sökningen utfördes.
Sök efter Start\Slutdatum: Datumkriterierna som används i sökningen. Om inget datumfält användes i sökningen genomsöktes ALLA datum.
Körande användare: Den användare som skapade och körde sökningen.
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


Obs! Fortsätt med följande steg först när indexverifieringen har slutförts.

För att identifiera problematiska SourceOne Index-uppsättningar och deras tillstånd kör du sedan följande SQL-frågor:


1. Kör följande fråga för att samla in installationsdatum och uppgraderingsdatum för SourceOne-miljön:

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. Kör följande fråga för att samla in alla SourceOne-index som när som helst har markerats som "Extra objekt":

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. Kör följande fråga för att samla in alla SourceOne-index som hade återskapats under tiden för problemet: 

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. Kör följande fråga för att samla in SourceOne-index där valideringen misslyckades eller missades under indexvalideringsprocessen efter uppgradering till 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. När du kör den här sista frågan matas alla potentiellt berörda SourceOne-index ut. Alla sökningar som kördes mot index markerades som "Extra objekt" måste köras igen för att få rätt resultat. Alla sökningar som kördes mot index som "återskapades" kan eventuellt behöva köras igen eftersom en återskapande av ett index skulle ha lösts men beror på när sökningen kördes mot den återskapade indexuppsättningen.

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

Innehållet är översatt till andra språk: 
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.