Добавьте поле в индекс участников Umbraco 8

Я расширил тип члена Umbraco 8, добавив несколько настраиваемых полей.

Мне нужно иметь возможность искать участников по одному из этих полей, 'organizationName' (это псевдоним), поэтому, глядя на Examine, я попытался добавить это в индекс участников следующим образом:

private readonly IExamineManager _examineManager;

    public CustomizeIndexComponent(IExamineManager examineManager)
    {
        _examineManager = examineManager;
    }

    public void Initialize()
    {
        // get the external index
        if (!_examineManager.TryGetIndex("MembersIndex", out var index))
            return;

        // add a custom field type
        index.FieldDefinitionCollection.TryAdd(new FieldDefinition("organisationName", FieldDefinitionTypes.FullText));

    }

когда я ставлю точку останова после TryAdd, я вижу новое поле, но в бэк-офисе его нет, когда я смотрю на индекс участников.

Правильно ли я делаю это, например, могу ли я добавить свое поле в индекс участников или мне следует создать новый настраиваемый индекс на основе члена?


person DarkW1nter    schedule 25.02.2020    source источник


Ответы (1)


Я думаю, что большинство людей создают свой собственный индекс, как здесь: properties#comment-277928" rel="nofollow noreferrer">https://our.umbraco.com/forum/developers/extending-umbraco/72299-umbraco-7-backoffice-member-search-by-custom-properties#comment -277928

Но лично я бы просто получил доступ к API членства с помощью GetMembersByPropertyValue. Очень легко сделать вызов членского API с контроллером API umbraco. https://our.umbraco.com/documentation/reference/management/services/memberservice/ (здесь пример, чтобы показать несколько строк).

/umbraco/api/SearchMemberApi/ReturnMembersWith

введите здесь описание изображения

person pbl_dk    schedule 25.02.2020