1.工作需要根据每篇文章的tag进行相关文章的推荐。举个例子说明推荐相关文章的需求:
比如有几篇文章:
1.文章1的tag:web,drupal,vue
2.文章2的tag:web,vue
3.文章3的tag:react.
4.文章4的tag:web.
那么在对文章1进行推荐时,应该是首先推荐文章2(因为文章2的tag和文章1的tag匹配度最高),接着是推荐文章4,文章3不会被推荐。
2.要实现这中推荐效果,经过群里的大神推荐,使用Similar By Terms这个模块来做。
3.使用这个模块非常简单。
- 首先就是安装这个模块,下载解压,然后进行安装。
- 创建一个新的视图,生成一个block.
- 在该视图中,选择高级->上下文过滤器->新增->Similar by terms:Nid->提供一个默认值->URL上的内容ID
- Limit similarity to terms within these vocabularies to Tags.
- 保存这个上下文过滤器
- 高级->使用聚合器->是
4.因为我们在推荐时,情况比较复杂,比如说:两篇文章的tag都一样,那么到底应该优先推荐哪篇文章呢?其实应该是优先推荐与当前文章在同一个文章分类下的文章。这种需求通过view的排序功能就可以实现了。我们可以添加几个排序规则:
比如说首先应该是匹配tag数量最多的文章 ,那么在排序规则中使用:count(distinct content:tag)
接着按照文章分类来匹配,那么在添加按照文章分类来排序。
最后可能还要按照时间的先后顺序来进行推荐。
5.最后我们就可以在view的预览中查看推荐的结果。
参考英文的这篇文章:
https://alvinalexander.com/drupal/how-to-configure-similar-by-terms-module-drupal-8
板块
Drupal 版本