SourceOne Email Management: Wyszukiwarka WebSearch może nie zwrócić pełnego zestawu wyników wyszukiwania
Summary: Wyszukiwarka internetowa może nie zwrócić pełnego zestawu wyników wyszukiwania.
Symptoms
Podczas przeszukiwania indeksu pełnotekstowego wszystkie wyniki mogą nie zostać zapisane w bazie danych SourceOne Search. W związku z tym wyniki wyszukiwania mogą być niekompletne.
Ten problem może nie dotyczyć każdego wyszukiwania. Wystąpienie tego problemu będzie zależało od istnienia zduplikowanych komunikatów w indeksie pełnotekstowym i kolejności, w jakiej te wyniki są zwracane. Ten problem jest bardziej prawdopodobny w systemach, w których:
- W indeksie pełnotekstowym istnieją zduplikowane elementy
- Włączono opcję MaxSearchHitsThreads
- Istnieją archiwa migracji na miejscu, w których dane z wielu serwerów EmailXtender zostały przeniesione do jednego zmapowanego folderu SourceOne.
Cause
Resolution
Firma Dell EMC zaleca, aby klienci zastosowali jedną z następujących poprawek SourceOne Email Management dla zainstalowanej wersji 7.2:
7.2 SP6 HF4 (7.2.6.6229)
7.2 SP7 lub nowszy
Pliki do pobrania są dostępne na stronie produktu do zarządzania pocztą e-mail SourceOne pod adresem: http://support.emc.com
Po zainstalowaniu wersji SourceOne Email Management z poprawką oczekuje się, że wszystkie przyszłe wyszukiwania zakończą się wszystkimi wynikami. Wszelkie wyszukiwania przeprowadzone podczas uruchamiania wersji, której dotyczy problem, będą musiały zostać wykonane ponownie, aby zagwarantować kompletność wyników.
W oprogramowaniu SourceOne Email Management w wersji 7.2.8 można zidentyfikować, które zestawy indeksów mają zduplikowaną lub "dodatkową zawartość" za pomocą walidacji indeksu. Wyniki walidacji mogą służyć do identyfikowania wyszukiwań, które należy przeprowadzić ponownie. Wykonaj następujące czynności:
Najpierw skonfiguruj skanowanie z walidacją indeksu przy użyciu trybu 2 lub nowszego. Walidacja indeksu oznaczy zestawy indeksów problemów żółtym wykrzyknikiem (!), a stan indeksu to "Dodatkowe elementy". Jeśli skanowania zostały uruchomione w poprzedniej wersji, ponowne skanowanie można wykonać w konsoli zarządzania pocztą e-mail SourceOne, klikając prawym przyciskiem myszy każdy folder RRRRMM i wybierając opcję "Skanuj ponownie". Po zakończeniu skanowania wszystkie indeksy ze stanem "Dodatkowe elementy" muszą zostać pomyślnie odbudowane, zanim jakiekolwiek wyszukiwania w sieci SourceOne, których dotyczy problem, zostaną ponownie uruchomione.
Następnym krokiem jest zidentyfikowanie wszelkich potencjalnych wyszukiwań w sieci SourceOne, które zostały wcześniej uruchomione, a które potencjalnie przeszukiwałyby zestaw indeksów problemów.
NUTA: Poniższe zapytania SQL zakładają, że nazwa baz danych SourceOne jest domyślna. Jeśli tak nie jest, zapytanie będzie musiało zostać zmodyfikowane przy użyciu poprawnej nazwy baz danych SourceOne.
Po pierwsze, aby zidentyfikować wcześniejsze wyszukiwania w sieci SourceOne, które zostały wcześniej uruchomione w czasie występowania tego problemu, wykonaj następujące zapytania SQL:
1. Uruchom następujące zapytanie, aby przechwycić datę instalacji i datę aktualizacji środowiska 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. Uruchom następujące zapytanie, aby zebrać wszystkie informacje dotyczące wyszukiwań w sieci SourceOne, które zostały przeprowadzone na podstawie dat pobranych w kroku 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. Uruchom następujące zapytanie, aby wyświetlić wszystkie informacje dotyczące wyszukiwań, których może dotyczyć problem. Dane wyjściowe będą zawierać podstawowe informacje o wyszukiwarce internetowej SourceOne, w tym:
| SearchName: | Nazwa wyszukiwania wyświetlana w oknie SourceOne Email Management Console\Operations\Job Management. |
| Identyfikator zadania: | Wartość JobID znaleziona w oknach Zarządzanie zadaniami konsoli zarządzania pocztą e-mail SourceOne. |
| Czas rozpoczęcia: | Data/godzina przeprowadzenia wyszukiwania. |
| Data rozpoczęcia/zakończenia wyszukiwania: | Kryteria daty używane w wyszukiwaniu. Jeśli w wyszukiwaniu nie użyto pola Data, przeszukano WSZYSTKIE daty. |
| Użytkownik wykonujący: | Użytkownik, który utworzył i uruchomił wyszukiwanie. |
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
UWAGA: Wykonaj następujące czynności dopiero po zakończeniu sprawdzania poprawności indeksu.
Następnie, aby zidentyfikować problematyczne zestawy indeksów SourceOne i ich stany, wykonaj następujące zapytania SQL:
1. Uruchom następujące zapytanie, aby przechwycić datę instalacji i datę aktualizacji środowiska 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. Wykonaj następujące zapytanie, aby przechwycić wszystkie indeksy SourceOne, które zostały w dowolnym momencie oznaczone jako "Dodatkowe elementy":
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. Wykonaj następujące zapytanie, aby przechwycić wszystkie indeksy SourceOne, które zostały odbudowane w czasie występowania problemu:
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. Wykonaj następujące zapytanie, aby przechwycić wszystkie indeksy SourceOne, które nie powiodły się lub zostały pominięte podczas procesu walidacji indeksu po uaktualnieniu do wersji 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. Wykonanie tego końcowego zapytania spowoduje wyświetlenie wszystkich indeksów SourceOne, których potencjalnie dotyczy problem. Wszystkie wyszukiwania, które zostały przeprowadzone w indeksach, zostały oznaczone jako "Dodatkowe elementy", musiałyby zostać ponownie wykonane, aby uzyskać poprawne wyniki. Wszystkie wyszukiwania, które zostały uruchomione dla indeksów, które zostały "odbudowane", mogą potencjalnie wymagać ponownego wykonania, ponieważ odbudowa indeksu zostałaby rozwiązana, ale zależy od tego, kiedy wyszukiwanie zostało uruchomione w odniesieniu do odbudowanego zestawu indeksów.
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 |