Вставьте «метки Umbraco» с помощью события проверки данных узла сбора

У меня есть тип документа статьи. Два свойства являются сборщиками дерева с несколькими узлами.

Когда узел этого типа документа сохраняется/опубликовывается, я хочу, чтобы идентификаторы этих сборщиков выполнялись в umbraco, чтобы получить имена узлов. Затем я хочу использовать эти имена узлов для создания «тегов Umbraco» и добавить их в индекс. (против сохранения узла)

Поскольку у меня есть два сборщика деревьев с несколькими узлами, я хочу сохранить теги как группы тегов.

Это так, когда я выполняю пользовательский поиск по индексу, мне нужно искать только узлы, имеющие тип документа Статья.

У меня настроено и работает событие GatheringNodeData, поэтому просто нужен совет о том, как это сделать.

Это возможно/логично?


person Ayo Adesina    schedule 17.06.2015    source источник


Ответы (1)


Это, конечно, возможно! В событии GatheringNodeData вам просто нужно создать поля тегов и добавить их в индекс. Вот примерный код, который должен дать вам представление о том, как это сделать:

private void OnGatheringNodeData(object sender, IndexingNodeDataEventArgs e)
    {
        // Create searchable path
        if (e.Fields.ContainsKey("tagsField"))
        {
            //get the info that you need here and add it to the string you want to index
        }

        // Extract the filename from media items
        e.Fields.Add("modifiedTags", "YOUR STRING HERE");
    }

Затем вы можете выполнить поиск тега в поле «modifiedTags». Единственная проблема, с которой вы можете столкнуться, — это если у вас есть тег, который содержит другой тег. Например. если у вас есть теги «Мой тег» и «Мой тег 2», поиск «Мой тег» в новом поле будет возвращать элементы, помеченные обоими тегами.

person Tim    schedule 19.06.2015