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

时间:2015-06-17 16:28:38

标签: umbraco lucene.net umbraco7 umbraco6 examine

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

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

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

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

我的GatheringNodeData事件已经设置好并且正常工作,所以只需要一些关于它是如何完成的建议。

这可能/逻辑吗?

1 个答案:

答案 0 :(得分:0)

这当然有可能!在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"上搜索标签。领域。您可能遇到的唯一问题是,如果您的标签包含另一个标签。例如。如果你有标签"我的标签"和#34;我的标签2"搜索"我的标签"在新字段上将返回标记有两个标记的项目。