首先,您需要将 User Role 字段添加到sitecore_analytics_index中的联系人。为此,您应该在(我假设您使用<fields hint="raw:AddComputedIndexField">
的是 Lucene)部分添加一个新的计算字段。这是示例:Sitecore.ContentSearch.Lucene.Index.Analytics.config
<field fieldName="Contact.ProfileProperties.UserRole" emptyString="_EMPTY_" nullValue="_NULL_" storageType="YES" indexType="UNTOKENIZED">Your.Type.Name, Your.Assembly</field>
您的类型应该通过 id 获取索引用户的角色。
之后,向/sitecore/system/Settings/Rules/Definitions/Elements/Segment Builder添加一个名为“UserRole”的新条件,其中“Text”字段为:
where the userrole [operatorid,StringOperator,,compares to] [value,,,specific userrole]
并且“类型”指向您的自定义类,如下所示:
public class UserRoleCondition<T> : TypedQueryableStringOperatorCondition<T, IndexedContact> where T : VisitorRuleContext<IndexedContact>
{
protected override Expression<Func<IndexedContact, bool>> GetResultPredicate(T ruleContext)
{
var userrole = this.Value ?? string.Empty;
return
this.GetCompareExpression(
c => (string)c[(ObjectIndexerKey)"contact.profileproperties.userrole"], userrole);
}
}
现在,您可以在分段列表中使用新的用户角色条件。