Значения уточнения перестали возвращать "подсказки"
У меня проблема со значениями уточнения, возвращаемыми поиском в SharePoint 2016. Не знаю, когда это начало появляться, но, возможно, это связано с переходом с SP 2013 на SP 2016? Позже мы вернулись из поиска уточнений и значения выглядели так:
Refinement Value: Organizational:ColAfterSyncUpg GP0|#1dc79002-d32b-4faa-89f3-08ab45051e70 L0|#01dc79002-d32b-4faa-89f3-08ab45051e70|Organizational:ColAfterSyncUpg GTSet|#4642cdf4-872b-4179-96f5-043fbadb0fcf GPP|#4f668d16-2643-436b-b72b-0f180ccae0e6
Это значение было взято из управляемого свойства, к которому прикреплены два свойства для обхода:
ows_<managed_metadata_field_name>
ows_taxId_<managed_metadata_field_name>
, Благодаря этому я смог получить правильный GUID и в поисковом запросе пройти некоторые фильтры уточнения. Но теперь (я не знаю, когда это начало происходить), когда я добавляю новый документ в пустую коллекцию (без старых, правильных файлов), поиск сканирует это поле и возвращает только:
Refinement Value: Organizational:ColAfterSyncUpg
Я полагаю, что второе свойство для обхода (ows_taxid) пусто. Но почему? Что-то изменилось в SP 2016 и теперь это свойство не создано или что? "Старые" файлы сканируются нормально, "новые" не в порядке...
РЕДАКТИРОВАТЬ: обнаружил, что когда я редактирую элемент вручную, то все в порядке, и поиск возвращает правильные значения с помощью GUIDS. Так может быть что-то не так с кодом? Код довольно сложный, но некоторые его части:
var taxValue =
new TaxonomyFieldValue(field)
{
TermGuid = tagDto.TagId.ToString(),
Label = tagDto.DefaultLabel,
WssId = -1
};
field.SetFieldValue(entity, taxValue);
entity.UpdateOverwriteVersion();
1 ответ
Я выяснил, в чем причина проблемы. Один из членов моей команды отключил события во время предоставления документов нашим кодом. Похоже, что SP имеет некоторые события, которые генерируют эти значения, и события не могут быть отключены, если они вам нужны.