SourceOne Email Management. Веб-поиск может возвращать неполный набор результатов поиска
Summary: Веб-поиск может возвращать неполный набор результатов поиска.
Symptoms
Во время поиска по полнотекстовому индексу не все результаты могут быть зафиксированы в базе данных поиска SourceOne. Следовательно, результаты поиска могут быть неполными.
Эта проблема может влиять не на все поисковые запросы. Возникновение этой проблемы будет зависеть от наличия дублирующихся сообщений в индексе полного текста и порядка, в котором эти результаты возвращаются. Эта проблема чаще возникает в системах со следующими конфигурацией:
- В указателе полнотекстового текста имеются дублирующиеся элементы
- Параметр MaxSearchHitsThreads включен
- Существуют архивы переноса на месте, в которых данные с нескольких серверов EmailXtender были перенесены в одну папку SourceOne.
Cause
Resolution
Dell EMC рекомендует заказчикам применить одно из следующих исправлений для управления электронной почтой SourceOne для установленной версии 7.2:
7.2 SP6 HF4 (7.2.6.6229)
7.2 SP7 или выше
Файлы для скачивания доступны на странице продукта SourceOne Email Management по адресу: http://support.emc.com
После установки версии SourceOne Email Management с исправлением все последующие поисковые запросы должны быть завершены со всеми результатами. Любые поиски, выполненные при работе с затронутой версией, необходимо будет выполнить снова, чтобы гарантировать полноту результатов.
В SourceOne Email Management версии 7.2.8 можно определить, какие наборы индексов содержат дублирующееся или «Дополнительные элементы» содержимого с помощью проверки индекса. Эти результаты можно использовать для определения того, какие поиски необходимо выполнить повторно. Выполните следующие действия:
Сначала настройте сканирование с проверкой индекса в режиме 2 или выше. Проверка индекса помечает проблемные наборы индексов желтым восклицательным знаком (!), а статус индекса будет "Extra Items". Если сканирование было выполнено в предыдущем выпуске, повторное сканирование можно выполнить в консоли управления электронной почтой SourceOne, щелкнув правой кнопкой мыши каждую папку YYYYMM и выбрав «Повторное сканирование». После завершения сканирования все индексы с состоянием "Extra Items" должны быть успешно перестроены до повторного выполнения любого затронутого веб-поиска 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: | Значение JobID, находящееся в окнах «Управление заданиями» консоли управления электронной почтой SourceOne. |
| Время начала: | Дата и время выполнения поиска. |
| Дата начала/окончания поиска: | Критерии Дата, используемые при поиске. Если поле «Дата» не использовалось при поиске, то поиск выполнялся ПО ВСЕМ датам. |
| Исполняющий пользователь: | Пользователь, который создал и запустил поиск. |
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 |