Управління електронною поштою SourceOne: Веб-пошук може не повертати повний набір результатів пошуку
Summary: Веб-пошук може не повертати повний набір результатів пошуку.
Symptoms
Під час пошуку за повнотекстовим індексом усі результати можуть не бути внесені до бази даних SourceOne Search. Отже, результати пошуку можуть бути неповними.
Ця проблема може впливати не на всі пошукові запити. Виникнення цієї проблеми залежатиме від наявності дублікатів повідомлень у повному текстовому індексі та порядку повернення цих результатів. Ця проблема частіше виникає в системах, де:
- Дублікати елементів існують у повному текстовому покажчику
- Увімкнено опцію MaxSearchHitsThreads
- Існують архіви міграції на місці, де дані з кількох серверів EmailXtender були перенесені в одну папку SourceOne Mapped.
Cause
Resolution
Dell EMC рекомендує клієнтам застосувати один із наступних патчів SourceOne Email Management для встановленої версії 7.2:
7.2 SP6 HF4 (7.2.6.6229)
7.2 SP7 або вище
Завантаження доступні на сторінці продукту SourceOne Email Management за адресою: http://support.emc.com
Як тільки версія SourceOne Email Management з виправленням буде встановлена, очікується, що всі подальші пошуки завершаться з усіма результатами. Будь-які пошукові запити, виконані під час роботи відповідної версії, потрібно буде виконувати знову, щоб гарантувати повноту результатів.
У версії 7.2.8 керування електронною поштою SourceOne може бути можливим визначити, які набори індексів мають дублікат або вміст «Зайві елементи» за допомогою перевірки індексу. Ці результати перевірки можуть бути використані для визначення того, які пошукові запити потрібно повторно запустити. Виконуємо наступні дії:
Спочатку налаштуйте сканування перевірки індексу за допомогою режиму 2 або новішого. Перевірка індексу позначить проблемні набори індексів жовтим знаком оклику (!), а статус індексу буде «Додаткові елементи». Якщо сканування було запущено в попередньому випуску, повторне сканування можна виконати в консолі керування електронною поштою SourceOne, клацнувши правою кнопкою миші кожну папку YYYYMM і вибравши «Повторне сканування». Після завершення сканування всі індекси зі станом «Зайві елементи» повинні бути успішно перезібрані, перш ніж будь-які уражені веб-пошуки SourceOne будуть повторно запущені.
Наступні кроки полягають у виявленні будь-яких потенційних веб-пошукових запитів SourceOne, які були запущені раніше і які потенційно могли б шукати в наборі
індексів проблем.ПРИМІТКА: Наведені нижче SQL-запити припускають, що назви баз даних SourceOne є стандартними. Якщо це не так, запит потрібно буде змінити на правильну назву імен бази даних SourceOne.
По-перше, щоб виявити будь-які попередні веб-пошуки 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, який був виконаний на основі дат, отриманих на кроці 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. Виконайте наведений нижче запит, щоб вивести всю інформацію щодо пошукових запитів, які можуть бути порушені. Вихідні дані включатимуть основну інформацію про веб-пошук SourceOne, включаючи:
| SearchName: | Назва пошуку в тому вигляді, в якому вона відображається у вікні SourceOne Email Management Console\Operations\Job Management. |
| Ідентифікатор роботи: | Значення JobID знаходиться у вікнах «Керування завданнями» консолі керування електронною поштою SourceOne. |
| Час початку: | Дата\Час, коли було виконано пошук. |
| Шукайте дату початку\завершення: | Критерії Date, які використовуються під час пошуку. Якщо в пошуку не було використано поле Дата, то виконувалися пошуки ВСІХ дат. |
| Користувач-виконавець: | Користувач, який створив і запустив пошук. |
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 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. Виконайте наступний запит, щоб зафіксувати будь-які індекси SourceOne, які не вдалося перевірити або були пропущені під час процесу перевірки індексу після оновлення до 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. Виконання цього останнього запиту призведе до виведення всіх потенційно порушених індексів 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 |