定制外表套上搜索索引处理程序:自定义,相较于页面的URL标准领域?(Customized Tridi

2019-09-21 01:39发布

我被玩弄的自定义搜索索引处理程序支持SDL Tridion 2011(GA)。 我得到的东西的工作,使用由罗提供了非常有用的信息 ,但是我不知道如果我的执行力是最好的选择。

要求是要能够搜索通过URL在CMS页面(例如www.example.com/news/index.html)。 为了做到这一点,我有使用创建的类ISearchIndexingHandler接口(下面的代码)。 我在索引项的ContentText领域的网址,但我不知道这是否会通常含有别的一个页面(我想一个网页只有元数据,所以这应该是OK)。 使用这种通过自定义字段的好处是,我可以简单地键入搜索框中键入URL,而无需使用<链接> IN <字段名>或类似的东西。

所以我的问题是,没有任何理由不使用ContentText的网页,并没有任何优势,在使用自定义字段? 另外加分去对如何处理蓝图(如果我创建一个父发布一个网页,我想当地的网址也于儿童出版物索引)好点子的人,并在一个结构组路径被改变的情况下(我想我能以某种方式来自我的索引处理程序中触发子页面项目的重新索引)。

编码:

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";
        }
    }
}

Answer 1:

你可以存储在ContextText资源网址。 捷斯场用于索引的模板内容的数据。

外表套上并不指数共同出版儿童的项目(S)。

索引是触发项目的修改(创建,更新,删除,定位和unlocalize)。 或者你可以使用重建索引工具重新索引UR项目。 但有没有办法在儿童出版指数的共享项目。



Answer 2:

我不认为你可以在URL中包括前缀既不索引项搜索查询。 由于共享项目未编入索引,你可能会指数从网站的结构层,这是从来没有发表过的页面。

当一个结构组移动,你将不得不作出一个事件处理程序,使用TOM.NET API的保护方法触发重新索引所有的子页面。 这种方法不是公共API的一部分,因此发布该解决方案的代码可能会宣布我为不受欢迎的人与R&d :)

在您重新建立索引什么,你应该存储原始发布在结构群的位置URL TcmEventArgs.ContextVariables属性,这样你就可以验证一个重新索引动作是否是必要的。



文章来源: Customized Tridion Search Index Handler: Custom vs Standard field for page url?