Search Sitecore搜索Api-如何获取格式化Url

Search Sitecore搜索Api-如何获取格式化Url,search,lucene,sitecore,sitecore8,Search,Lucene,Sitecore,Sitecore8,如何从Sitecore Lucene搜索中获取格式化的url?我创建了一个自定义索引,并在根目录下将其更新为/sitecore/content/websitename/home 检索到搜索结果时,URL会附加一个。我想的网址是。索引配置中是否有任何需要更新的设置 在sites.config中,我已经有了rootPath=“/sitecore/content/websitename”startItem=“/home”您可以通过两种方式获取url: 对于索引中的每个结果,获取项目并使用LinkMan

如何从Sitecore Lucene搜索中获取格式化的url?我创建了一个自定义索引,并在根目录下将其更新为/sitecore/content/websitename/home

检索到搜索结果时,URL会附加一个。我想的网址是。索引配置中是否有任何需要更新的设置


在sites.config中,我已经有了rootPath=“/sitecore/content/websitename”startItem=“/home”

您可以通过两种方式获取url:

  • 对于索引中的每个结果,获取项目并使用
    LinkManager
    获取url,就像您通常对任何项目所做的那样。这意味着您需要获取性能受到影响的项目
  • 在索引中创建一个计算字段以包含url。在计算字段中,确保生成了正确的链接。如果没有,您可能需要检查url选项以及
    Rendering.sitesolutioning
    设置(true)。使用调试器(或使用Luke测试索引)验证结果。请记住,如果在索引中包含url,则需要在重命名项目时更新其他项目(甚至在url中使用显示名称时更改显示名称)。该更改项的所有子项的URL在该点上也发生了更改

  • 谢谢你的提示,我选择了第二个选项。然而,我仍然必须获得上下文站点。以下是我已经实现的(如果有人需要的话):Item Item=indexable as SitecoreIndexableItem;如果(item!=null){var options=LinkManager.GetDefaultUrlOptions();options.Site=SiteContext.GetSite(“网站”);返回“https”+LinkManager.GetItemUrl(item,options);}不要使用url架构硬编码。使用方法获取当前架构:公共静态字符串GetScheme(){HttpContext current=HttpContext.current;if(current!=null)return current.Request.Url.Scheme;return string.Empty;}