自定义 Tridion 搜索索引处理程序:页面 url 的自定义字段与标准字段?

2024-05-03

我正在研究 SDL Tridion 2011 (GA) 的自定义搜索索引处理程序。我得到了一些工作,使用Arjen 提供的非常有用的信息 http://80000ft.blogspot.nl/2012/08/search-indexing-handlers.html,但是我不确定我的执行是否是最佳选择。

要求是能够通过 url 在 CMS 中搜索页面(例如 www.example.com/news/index.html)。为了做到这一点,我使用创建了一个类ISearchIndexingHandler接口(代码如下)。我正在项目的 ContentText 字段中索引 url,但是我不确定这通常是否会包含页面的其他内容(我认为页面只有元数据,所以这应该没问题)。与自定义字段相比,使用此字段的优点是我可以简单地在搜索框中键入 url,而无需使用 IN 或类似的内容。

所以我的问题是,是否有任何理由不使用 ContentText for Pages,以及使用自定义字段有什么优势吗?此外,任何对如何处理 BluePrinting 有好主意的人都会获得奖励分数(如果我在父出版物中创建页面,我希望本地 URL 也能在子出版物中建立索引),以及更改结构组路径的情况(我想我可以以某种方式从索引处理程序中触发子页面项目的重新索引)。

代码:

using System;
using Tridion.ContentManager.Search;
using Tridion.ContentManager.Search.Indexing.Handling;
using Tridion.ContentManager.Search.Indexing.Service;
using Tridion.ContentManager.Search.Indexing;
using Tridion.ContentManager.Search.Fields;

namespace ExampleSearchIndexHandler
{
    public class PageUrlHandler : ISearchIndexingHandler
    {
        public void Configure(SearchIndexingHandlerSettings settings)
        {               
        }

        public void ExtractIndexFields(IdentifiableObjectData subjectData, Item item, CoreServiceProxy serviceProxy)
        {
            PageData data = subjectData as PageData;
            if (data != null)
            {
                PublishLocationInfo info = data.LocationInfo as PublishLocationInfo;
                string url = GetUrlPrefix(data) + info.PublishLocationUrl;
                item.ContentText = url;
            }
        }

        private string GetUrlPrefix(PageData page)
        {
            //hardcoded for now, but will be read from publication metadata
            return "www.example.com";
        }
    }
}

您可以将 url 存储在 ContextText 属性中。 Thies 字段用于索引模板内容数据。

Tridion 不会为子出版物的共享项目建立索引。

索引在项目修改(创建、更新、删除、本地化和取消本地化)时触发。 或者您可以使用重新索引工具来重新索引您的项目。但无法为子出版物中的共享项目建立索引。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 Tridion 搜索索引处理程序:页面 url 的自定义字段与标准字段? 的相关文章

  • 将搜索栏从 magento 主页的标题中移动

    我是 magento 的新手 我想将搜索栏从标题移动到主页的中间位置 以便它仅显示在主页上 我在 magento 论坛上阅读了许多相关答案 但所有人都在尝试编辑 box css 中的 mini search 元素 但不幸的是我在此文件中没有
  • 从 WordPress 搜索结果页面获取类别名称

    在特定博客类别中进行搜索查询 重定向到 WP BLOG 主页面 后 我的搜索 URL 如下所示 online shop s category new posts category post type post 不幸的是 我无法在搜索结果页面
  • 如何搜索 Google 电子表格?

    我正在进行一些详尽的搜索 需要确定电子表格中是否已存在新域 URL 然而 所有 Spreadsheet 对象都没有搜索功能 即大多数 Document 对象中的 findText 功能 我觉得我错过了一些重要的事情 我缺少什么 查找文本函数
  • 自定义 Tridion 搜索索引处理程序:页面 url 的自定义字段与标准字段?

    我正在研究 SDL Tridion 2011 GA 的自定义搜索索引处理程序 我得到了一些工作 使用Arjen 提供的非常有用的信息 http 80000ft blogspot nl 2012 08 search indexing hand
  • Emacs:结合 isearch-forward 和 center-top-bottom

    预先非常感谢您的帮助 在 Emacs 中 我喜欢使用 iseach forward C s 但如果突出显示的字体单词位于屏幕中间而不是最底部的中心 我会更喜欢它 我发现自己不断地这样做 C s foo C s C s C s 哦 这就是我一
  • 列表有简短的 contains 函数吗?

    给定一个列表xs和一个值item 如何检查是否xs包含item 即 如果任何元素xs等于item 有没有类似的东西xs contains item For performance considerations see Fastest way
  • 从中间部分匹配完成建议elasticsearch

    我有一个名为搜索建议具有以下 search suggest type completion analyzer simple payloads true preserve separators false preserve position
  • Lua中如何在另一个表的表成员中搜索

    我正在编写一个 lua 程序 它有一个表 该表是另一个表的成员 当我向该成员表添加新日期时 一切正常 但是 当我想在该表中搜索时 无论我给出什么键 我总是会将最后一行添加到表中 如何在该成员表中正确搜索 Stream name functi
  • 如何在从左到右、从上到下排序的二维数组中搜索数字?

    我最近收到了这个面试问题 我很好奇有什么好的解决方案 假设我有一个二维数组 其中所有 数组中的数字在增加 从左到右 从上到下的顺序 底部 搜索和搜索的最佳方式是什么 判断目标号码是否在 大批 现在 我的第一个倾向是使用二分搜索 因为我的数据
  • 错误:找不到引用合同的默认端点元素

    我正在编写下面的代码来通过核心服务在 tridion 中创建 MM 组件 但运行此服务时出现错误 public ComponentData GetNewMultimediaComponent CoreServiceClient Client
  • 如何使用 Ansible when 条件在文件中搜索字符串

    我有一个变量中用 n 分隔的搜索字符串列表listofips 我想在文件中搜索该字符串hello csv在我的下面playbook dir 我可能遇到一些语法问题 我不确定 但下面是我尝试过的 set fact listofips 10 0
  • 搜索/排序算法 - 是否有类似 GoF 的列表?

    我是一名自学成才的开发人员 坦率地说 我不太擅长找出在任何特定情况下使用哪种搜索或排序算法 我只是想知道是否有设计模式 esque 列出了以太坊中可用的常见算法 供我添加书签 就像是 算法名称 带有别名 如果有的话 它解决的问题 大O成本
  • Tridion 2011 SP1 的示例事件系统代码

    现在我们使用的是 Tridion 5 3 对于许多出版物 我们实现了事件系统 例如如果组件已本地化则发送一些邮件通知 或者当工作流程中完成特定活动时发送邮件通知等 我们当前的事件系统是在 Visual Basic 6 0 中实现的 现在当我
  • C 中的三元搜索

    我想在 C 中对整数进行三元搜索 我已经尝试过 但它对于特定情况效果不佳 请帮我删除以下程序中的错误 我的尝试 include
  • Tridion 2009 模板发布失败

    在 Tridion 2009 中 我们在尝试发布页面 NET 时刚刚开始遇到一些错误 一开始是间歇性的经典 RenderComponentPresentation 超出了渲染失败的最大数量 0 错误 然后发展为完全失败 我们可以正确预览页面
  • 用于开始和/或包含搜索的最快字符串集合结构/算法是什么

    我有以下情况 我有一个大的字符串集合 比如说 250 000 平均长度可能是 30 我要做的就是在这些搜索中进行许多搜索 大多数搜索都是 StartsWith 和 Contains 类型的 该集合在运行时是静态的 这意味着选择的集合的初始读
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • 利用 Bootstrap 的 typeahead 作为搜索功能

    我的预输入工作得很好 但我对 Javascript 缺乏经验 无法理解如何将输入的结果转换为链接
  • REST api 可以通过两个 HTTP 方法公开吗?

    问题是我们有一个复杂的搜索 api 查询字符串 并且希望让用户可以方便地使用 body 所以我们希望同时允许 GET 和 POST 或 PUT 我知道 对于搜索是否为只读操作存在争论 并且根据 REST 标准 它应该只能是 GET 据我了解
  • Twitter api - 搜索太复杂?

    知道为什么 Twitter 会抛出这个错误吗 GET https search twitter com search json q Middle 20Tennessee 20State 20Blue 20Raiders 20Florida

随机推荐