0

我对 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();
4

1 回答 1

0

我已经找出导致问题的原因。我的一位团队成员在我们的代码提供文档期间禁用了事件。看起来 SP 有一些事件会生成这些值,如果需要,则无法禁用这些事件。

于 2018-11-23T08:50:00.580 回答