SourceOne Email Management. Веб-поиск может возвращать неполный набор результатов поиска

Summary: Веб-поиск может возвращать неполный набор результатов поиска.

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


Во время поиска по полнотекстовому индексу не все результаты могут быть зафиксированы в базе данных поиска SourceOne. Следовательно, результаты поиска могут быть неполными.
Эта проблема может влиять не на все поисковые запросы. Возникновение этой проблемы будет зависеть от наличия дублирующихся сообщений в индексе полного текста и порядка, в котором эти результаты возвращаются. Эта проблема чаще возникает в системах со следующими конфигурацией:

  • В указателе полнотекстового текста имеются дублирующиеся элементы
  • Параметр MaxSearchHitsThreads включен
  • Существуют архивы переноса на месте, в которых данные с нескольких серверов EmailXtender были перенесены в одну папку SourceOne.   

Cause

При запуске веб-поиска SourceOne процесс поиска будет искать совпадения с критериями поиска или совпадениями в индексе.  Как только количество обращений достигает 5000 или поиск завершается, результаты публикуются в базе данных SQL SourceOne Search через SQL-транзакцию.  Если транзакция содержит дублирующуюся запись, одно и то же сообщение из той же сопоставленной папки, о обращении, уже опубликованном той же или предыдущей транзакцией для того же поиска, возвращается ошибка нарушения первичного ключа и выполняется откат транзакции.  Совпадения, содержащиеся в откатной транзакции, не будут добавлены в результирующий набор поиска.

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 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. Выполните следующий запрос, чтобы собрать все индексы 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

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.