У меня проблема со значениями уточнения, возвращаемыми поиском в 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();