SourceOne Email Management: WebSearch returnerer muligvis ikke et komplet sæt søgeresultater

Summary: WebSearch returnerer muligvis ikke et komplet sæt søgeresultater.

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 fuldtekstindekssøgning gemmes alle resultater muligvis ikke i SourceOne-søgedatabasen. Derfor kan søgeresultaterne være ufuldstændige.
Dette problem påvirker muligvis ikke alle søgninger. Forekomsten af dette problem afhænger af eksistensen af dublerede meddelelser i fuldtekstindekset og den rækkefølge, som disse resultater returneres i. Dette problem opstår mere sandsynligt på systemer, hvor:

  • Der findes dublerede elementer i fuldtekstindekset
  • Indstillingen MaxSearchHitsThreads er blevet aktiveret
  • Der findes interne overførselsarkiver, hvor data fra flere EmailXtender-servere blev migreret til en enkelt SourceOne-tilknyttet mappe.   

Cause

Når du kører en SourceOne-websøgning, søger søgeprocessen efter resultater til søgekriterierne eller hits i indekset.  Når antallet af hits når 5000, eller søgningen er fuldført, sendes resultaterne til SourceOne Search SQL-databasen via en SQL-transaktion.  Hvis transaktionen indeholder en dubleret post, den samme meddelelse fra den samme tilknyttede mappe, af et hit, der allerede er sendt af den samme eller tidligere transaktion for den samme søgning, returneres en fejl med overtrædelse af den primære nøgle, og transaktionen annulleres.  De hits, der er indeholdt i tilbagerulningstransaktionen, føjes ikke til resultatsættet for søgningen.

Resolution

Dell EMC anbefaler, at kunder anvender en af følgende SourceOne Email Management-programrettelser til den installerede version 7.2:

7.2 SP6 HF4 (7.2.6.6229)
7.2 SP7 eller højere

Downloads er tilgængelige på produktsiden SourceOne Email Management på: http://support.emc.com

Når en version af SourceOne Email Management med rettelsen er installeret, forventes alle fremtidige søgninger at blive afsluttet med alle resultater.  Alle søgninger, der udføres, mens du kører en berørt version, skal udføres igen for at garantere, at resultaterne er fuldstændige.

I SourceOne Email Management version 7.2.8 kan det være muligt at identificere, hvilke indekssæt der har dubleret eller "Extra Items" indhold gennem indeksvalidering. Disse valideringsresultater kan bruges til at identificere, hvilke søgninger der skal køres igen. Udfør følgende trin:  

Først skal du konfigurere scanning efter indeksvalidering ved hjælp af tilstand 2 eller højere. Indeksvalidering markerer problemindekssæt med et gult udråbstegn (!), og indeksets status vil være "Ekstra elementer".  Hvis der er kørt scanninger i en tidligere version, kan der udføres en genscanning i SourceOne Email Management-konsollen ved at højreklikke på hver YYYYMM-mappe og vælge "Scan igen".  Når scanningerne er fuldført, skal alle indekser med tilstanden "Ekstra elementer" genopbygges, før berørte SourceOne-websøgninger køres igen.

De næste trin er at identificere eventuelle SourceOne-websøgninger, der tidligere blev kørt, og som potentielt ville have søgt på tværs af et problemindekssæt.

SEDDEL: SQL-forespørgslerne nedenfor antager, at navnet på SourceOne-databaserne er standard. Hvis de ikke er det, skal forespørgslen ændres med det korrekte navn på SourceOne-databasenavnene.

Hvis du først vil identificere eventuelle tidligere SourceOne-websøgninger, der tidligere blev kørt under dette problem, skal du udføre følgende SQL-forespørgsler:

1. Kør følgende forespørgsel for at registrere installations- og opgraderingsdatoer for SourceOne-miljøet:

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ølgende forespørgsel for at indsamle alle oplysninger om de SourceOne-websøgninger, der blev kørt baseret på de datoer, der blev hentet i trin 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ølgende forespørgsel for at få vist alle oplysninger om de søgninger, der muligvis er berørt. Outputtet vil indeholde de grundlæggende oplysninger om SourceOne Web Search, herunder: 
 

Søgnavn: Navnet på søgningen, som den vises i vinduet SourceOne Email Management Console\Operations\Job Management.
JobID: JobID-værdien, der findes i vinduerne Jobstyring i SourceOne Email Management Console.
Starttidspunkt: Dato\klokkeslæt for, hvornår søgningen blev udført.
Søg efter Start\Slutdato: Datokriterierne, der bruges i søgningen. Hvis der ikke blev brugt et datofelt i søgningen, blev ALLE datoer søgt.
Eksekverende bruger: Den bruger, der oprettede og kørte søgningen.
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


BEMÆRK: Prøv først følgende trin, når indeksvalideringen er fuldført.

For at identificere problematiske SourceOne-indekssæt og deres tilstande skal du derefter udføre følgende SQL-forespørgsler:


1. Kør følgende forespørgsel for at registrere installations- og opgraderingsdatoer for SourceOne-miljøet:

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. Udfør følgende forespørgsel for at registrere alle SourceOne-indekser, der til enhver tid var markeret som "Ekstra elementer":

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. Udfør følgende forespørgsel for at registrere eventuelle SourceOne-indekser, der var blevet genopbygget i løbet af 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. Udfør følgende forespørgsel for at hente eventuelle SourceOne-indekser, hvor valideringen mislykkedes eller blev savnet under indeksvalideringsprocessen efter opgradering til 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. Udførelse af denne sidste forespørgsel vil output alle de potentielt berørte SourceOne-indekser. Alle søgninger, der kørte mod indekser, blev markeret som "Ekstra varer", skulle udføres igen for at få de korrekte resultater. Alle søgninger, der blev kørt mod indekser, der blev "genopbygget", skulle muligvis udføres igen, fordi en genopbygning af et indeks ville have løst problemet, men afhænger af, hvornår søgningen blev kørt i forhold til det genopbyggede indekssæt.

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

Dette indhold er oversat til andre sprog: 
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.