Sitecore 7内容搜索爬网程序根目录之外的索引项

 guanchunlei 发布于 2023-01-19 17:49

我在Sitecore v7.1中创建了自定义内容搜索索引.

索引和爬网工作正常,我能够搜索索引并正确返回项目.我遇到的问题是索引有时会填充"爬行根"值之外的项(请参阅下面的配置).

到目前为止的工作是添加模板排除,Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config但这很烦人,因为我有很多非内容模板,我不想继续添加到此文件.

我的索引配置如下(这是在配置包含文件中):

    
    
        
            
                
                    
                        $(id)
                        $(id)
                        
                        
                        
                            
                            
                        
                        
                            
                                
                            
                        
                        
                            
                                web
                                /sitecore/content/Sites/ArtsCentre/Home
                            
                        
                    
                
            
        
    


正如您所看到的,我的爬虫根标记应该意味着索引仅索引我的内容项,但它是从诸如 /sitecore/content/Sites/SiteA/Configuration

任何有关这方面的帮助都会很棒:)

干杯,贾斯汀

1 个回答
  • 这是sitecore中的一个错误!据报道,但没有估计何时修复.

    错误在Sitecore.ContentSearch.SitecoreItemCrawler.IsAncestorOf方法中,它没有进行正确的检查.

    这是我从sitecore支持获得的建议:

    与此同时,我们建议您实施以下解决方法来解决此问题:

      创建一个派生自Sitecore.ContentSearch.SitecoreItemCrawler该类的类.

      覆盖其IsAncestorOf方法.新方法应如下所示:

       protected override bool IsAncestorOf(Item item)
       {
         bool result;
         using (new SecurityDisabler())
         {
           using (new CachesDisabler())
           {
             //result = item.Axes.IsAncestorOf(item);
             result = this.RootItem.Axes.IsAncestorOf(item);
           }
         }
         return result;
       }
      

      将类构建为程序集.将程序集放在站点的bin文件夹中.

      注释掉配置中出现的所有SitecoreItemCrawler类.插入新的爬网程序定义以使用新的爬网程序.默认情况下,您需要修改以下配置文件:

       Sitecore.ContentSearch.Lucene.Index.Core.config
       Sitecore.ContentSearch.Lucene.Index.Master.config
       Sitecore.ContentSearch.Lucene.Index.Web.config
      
       <!--<crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">-->
       <crawler type="[fully qualified class name], [your assembly name]">
      

      重建索引.

    2023-01-19 17:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有