是否可以使用带有sitecore标签的层次结构

Timon

是否可以为sitecore标签设置层次结构?

例如运输标签示例。

自行车

_女士自行车

_男士自行车

_儿童自行车

_福特

_大众

_ Peugot

当我搜索福特时,我想获得所有标记为福特的物品。当我搜索“汽车”时,我想获得所有标记为“汽车”,“福特”,“大众”和/或“ Peugot”的商品。

将商品标记为福特时,也不需要分别标记为汽车。

(编辑以提供更好的解释)

杰姆·戴维斯(JermDavis)

开箱即用的Sitecore搜索基础结构不直接支持此功能-因为它不知道标签的树状结构。但是,可以扩展Lucene集成以启用它。

首先,一些假设:

1)标签,我假设您在Sitecore数据中某处有标签内容树。每个标签都是基于“标签”模板创建的,因此可以将其识别为标签。例如,您的内容树可能如下所示:

Tags               --> Uses "Folder" template
   Car             --> Uses "Tag" template
     Ford          --> Uses "Tag" template
     Volkswagen    --> Uses "Tag" template
   Bike            --> Uses "Tag" template
     Mens Bike     --> Uses "Tag" template
     Womens Bike   --> Uses "Tag" template

2)应用标签您的内容项(即被标记的内容项)具有TreeList(或TreeListEx)字段,其数据源是从点1开始的“ Tags”文件夹。这使编辑者可以选择合适的标签。我将假定此字段称为“ AppliedTags”

有了这个位置:

您需要实现一些代码,这意味着在构建搜索索引时,它会附加使用编辑器的标签以及该标签项的所有父标签。因此,如果编辑者附加“福特”,则“汽车”也将纳入Lucene索引。

您没有指定要使用的Sitecore的版本-但总体思路与最新版本相同。但是,旧版本中存在一些技术差异。

在Sitecore 7.x(可能还有8)中,您需要创建“计算索引字段”。这基本上是Sitecore在将您的商品数据传递给Lucene进行索引之前运行的一些自定义代码。您可以使用此自定义代码为Lucene计算包含扩展标签集的新字段。这些链接提供了SC7中计算字段的概述:(那里还有更多内容-Google提供更多详细信息)

http://www.sitecore.net/Learn/Blogs/Technical-Blogs/John-West-Sitecore-Blog/Posts/2013/03/Sitecore-7-Computed-Index-Fields.aspx

http://reasoncodeexample.com/2014/04/01/computed-index-fields-sitecore-7-content-search/

调用时,您的自定义代码将收到当前正在编制索引的Sitecore项。用伪代码,您计算出的域代码可以:

If the item being processed has an "AppliedTags" field
  Create a list to store results
  For each Tag item specified in the current Item's "AppliedTags" field
      Run a Sitecore Query API to find any ancestors of that Tag which are themselves Tags
      Add the IDs of each of these returned items to the results list
  Return the results list

需要测试该项目是否具有“ AppliedTags”字段,因为您的代码将针对正在为此搜索索引处理的每个项目运行。因此,当代码遇到模板没有此字段的项目时,代码将中断。我假设您的内容树中没有标签。

现在,“ Lucene索引”可以包含所有应用的标签及其父标签的数据-这样便可以找到您想要的搜索结果。它也可以与更深的标签树一起使用-尽管要小心,因为标签树越大,索引时所需的处理就越多。

您需要修改Lucene的Sitecore配置,以将计算的字段添加到搜索索引的字段列表中。您可以在标准的Sitecore搜索文档中找到有关此操作的说明-但我假设新的索引字段称为“ ExpandedTags”。

完成此操作(并重建索引以获取所有新数据)之后,您可以编写一个Sitecore搜索查询,该查询说Search the "ExpandedTags" index entry for "Car",该查询还将返回最初用“ Ford”和“ Volkswagen”标记的内容。

在Sitecore 6.5 / 6.6中,我认为您无需花费大量精力即可立即完成此工作,但是搜索基础结构有一个开源扩展:

https://github.com/sitecorian/SitecoreSearchContrib

该项目的“抓取工具”部分允许使用基于的类scSearchContrib.Crawler.DynamicFields.BaseDynamicField来完成与上述相同的操作。如果使用此扩展名生成搜索索引,则可以应用上述类似的自定义方法。这里有一个使用动态字段的简单示例:

http://www.letsdositecore.com/advanced-database-crawler-and-dynamic-fields/

但是,运行此搜索框架将涉及一些额外的工作,以确保Sitecore使用SearchContrib框架来构建索引。上面链接的github数据中提供了示例配置补丁。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以使用带有多个JSON标签的结构?

来自分类Dev

是否可以使用UIMA创建注释的层次结构?

来自分类Dev

是否可以使用UIMA创建注释的层次结构?

来自分类Dev

我可以使用“:hover”效果来影响嵌套层次结构中较高的html标签CSS吗?

来自分类Dev

可以使用Guice限制类型层次结构扫描吗?

来自分类Dev

是否可以使用带有标签的训练集来训练神经网络,并使用没有标签的数据集对其进行测试?

来自分类Dev

是否可以使用宏生成结构?

来自分类Dev

<li>标签是否可以使用Modal?

来自分类Dev

输入后是否可以使用标签?

来自分类Dev

Haskell Happstack,我可以使用带有html标签的字符串作为响应吗?

来自分类Dev

是否可以使用javascript / jquery在包含target =“ _ blank”的网页中选择所有锚标签?

来自分类Dev

我可以使用Powershell获取json中属性的层次结构路径吗?

来自分类Dev

是否可以使用MimeKit创建带有不透明签名的签名电子邮件?

来自分类Dev

发送带有Express的响应后,是否可以使用某种“中间件”?

来自分类Dev

Angular2是否可以使用带有复选框的双向绑定?

来自分类Dev

是否可以使用带有独立声音的单独X屏幕?

来自分类Dev

映射的find()是否可以使用带有参数的比较器?

来自分类Dev

Android XML是否可以使用带有自定义属性的工具名称空间?

来自分类Dev

是否可以使用Epplus在Excel中复制行(带有数据,合并,样式)?

来自分类Dev

是否可以使用带有多个文件的GZIP进行HTTP内容编码?

来自分类Dev

是否可以使用带有参数的bash别名并追加另一个命令?

来自分类Dev

是否可以使用requests模块从Reverso Context获取带有单词翻译的例句?

来自分类Dev

是否可以使用'truncate'在带有asinfo的Aerospike中发出持久删除?

来自分类Dev

是否可以使用带有搜索名称的QRegExp查找索引行和值?

来自分类Dev

是否可以使用带有立方贴图颜色附件的深度渲染缓冲区?

来自分类Dev

是否可以使用带有独立声音的单独X屏幕?

来自分类Dev

是否可以使用带有通配符的重命名命令来更改文件名前缀?

来自分类Dev

是否可以使用带有英语日期/月份名称的非英语区域设置?

来自分类Dev

是否可以使用独特的几何着色器绘制带有线束的球体?

Related 相关文章

  1. 1

    是否可以使用带有多个JSON标签的结构?

  2. 2

    是否可以使用UIMA创建注释的层次结构?

  3. 3

    是否可以使用UIMA创建注释的层次结构?

  4. 4

    我可以使用“:hover”效果来影响嵌套层次结构中较高的html标签CSS吗?

  5. 5

    可以使用Guice限制类型层次结构扫描吗?

  6. 6

    是否可以使用带有标签的训练集来训练神经网络,并使用没有标签的数据集对其进行测试?

  7. 7

    是否可以使用宏生成结构?

  8. 8

    <li>标签是否可以使用Modal?

  9. 9

    输入后是否可以使用标签?

  10. 10

    Haskell Happstack,我可以使用带有html标签的字符串作为响应吗?

  11. 11

    是否可以使用javascript / jquery在包含target =“ _ blank”的网页中选择所有锚标签?

  12. 12

    我可以使用Powershell获取json中属性的层次结构路径吗?

  13. 13

    是否可以使用MimeKit创建带有不透明签名的签名电子邮件?

  14. 14

    发送带有Express的响应后,是否可以使用某种“中间件”?

  15. 15

    Angular2是否可以使用带有复选框的双向绑定?

  16. 16

    是否可以使用带有独立声音的单独X屏幕?

  17. 17

    映射的find()是否可以使用带有参数的比较器?

  18. 18

    Android XML是否可以使用带有自定义属性的工具名称空间?

  19. 19

    是否可以使用Epplus在Excel中复制行(带有数据,合并,样式)?

  20. 20

    是否可以使用带有多个文件的GZIP进行HTTP内容编码?

  21. 21

    是否可以使用带有参数的bash别名并追加另一个命令?

  22. 22

    是否可以使用requests模块从Reverso Context获取带有单词翻译的例句?

  23. 23

    是否可以使用'truncate'在带有asinfo的Aerospike中发出持久删除?

  24. 24

    是否可以使用带有搜索名称的QRegExp查找索引行和值?

  25. 25

    是否可以使用带有立方贴图颜色附件的深度渲染缓冲区?

  26. 26

    是否可以使用带有独立声音的单独X屏幕?

  27. 27

    是否可以使用带有通配符的重命名命令来更改文件名前缀?

  28. 28

    是否可以使用带有英语日期/月份名称的非英语区域设置?

  29. 29

    是否可以使用独特的几何着色器绘制带有线束的球体?

热门标签

归档