插入';Umbraco标签';通过收集节点数据检查事件

插入';Umbraco标签';通过收集节点数据检查事件,umbraco,lucene.net,umbraco7,umbraco6,examine,Umbraco,Lucene.net,Umbraco7,Umbraco6,Examine,我有一个文章文档类型-其中两个属性是多节点树选择器 保存/发布此文档类型的节点时,我希望从这些选择器获取ID在umbraco中查找以获取节点名称。然后,我想使用这些节点名称创建“Umbraco标记”,并将它们添加到索引中。(针对正在保存的节点) 因为我有两个多节点树选择器,所以我想将标记保存为标记组 因此,当我进行自定义索引搜索时,我只需要搜索文档类型为Article的节点 我已经设置好我的GatheringNodeData活动并开始工作,所以只需要一些关于如何完成的建议 这可能/合乎逻辑吗?当

我有一个文章文档类型-其中两个属性是多节点树选择器

保存/发布此文档类型的节点时,我希望从这些选择器获取ID在umbraco中查找以获取节点名称。然后,我想使用这些节点名称创建“Umbraco标记”,并将它们添加到索引中。(针对正在保存的节点)

因为我有两个多节点树选择器,所以我想将标记保存为标记组

因此,当我进行自定义索引搜索时,我只需要搜索文档类型为Article的节点

我已经设置好我的GatheringNodeData活动并开始工作,所以只需要一些关于如何完成的建议


这可能/合乎逻辑吗?

当然可能!在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”字段中搜索标记。您可能遇到的唯一问题是您是否有一个包含另一个标记的标记。例如,如果您有标签“My Tag”和“My Tag 2”,则在新字段中搜索“My Tag”将返回带有这两个标签的项目