在网站内容运营中,为用户提供相关文章推荐是提升用户体验、延长访问时长以及优化内容发现的重要策略。AnqiCMS的文档列表接口(archive/list)提供了一个非常便捷的功能,通过设置type=related参数,就能轻松实现这一目标。
理解 type=related 模式
当用户浏览完一篇文档(文章、产品等)后,通常会希望能找到更多与当前内容主题相近、信息互补的资料。AnqiCMS的archive/list接口正是为此设计。它允许你通过一个简单的参数,向系统请求与指定文档“相关”的其他文档列表。
这个功能的调用地址是:
{域名地址}/api/archive/list
请求方法为:GET
它的核心在于以下几个参数的配合使用:
type=related:这是最关键的参数,它明确告诉AnqiCMS接口,你期望获取的是与某个特定文档相关的推荐内容,而非普通的列表分页或全部列表。id:当type设置为related时,这个id参数是必需的。它指定了你想要获取“相关文章”的那个当前文档的ID。AnqiCMS会以这个ID为基准,智能地匹配出其他相关联的内容。moduleId:虽然不是必填,但强烈建议您指定。如果您的网站有多个文档模型(如文章模型、产品模型等),明确moduleId可以确保AnqiCMS只在当前文档所属的模型中查找相关文章,避免推荐跨模型的、可能不相关的文档。categoryId:同样是可选参数,但对提升相关性非常有帮助。通过指定当前文档的categoryId,您可以将相关文章的查找范围限定在同一分类下,这通常能提供更精准的推荐。limit:用于控制返回的相关文章数量,例如设置limit=5,接口将最多返回5篇相关文章。order:您可以利用这个参数来对相关文章进行排序。例如,order=views desc可以获取当前文档所属分类下浏览量最高的相关文章,或者order=created_time desc来显示最新发布的相关文章。
如何获取相关文章的实战步骤
假设您正在开发一个文章详情页,需要在此页面的底部推荐5篇与当前文章相关的文章。
第一步:获取当前文章的ID
首先,您需要知道当前用户正在浏览的文章的ID。这个ID通常在您通过archive/detail接口获取文章详情时就能得到。例如,如果当前文章的ID是123。
第二步:构建API请求
接下来,您可以构造一个针对archive/list接口的GET请求,并带上必要的参数。
一个典型的请求URL可能如下所示:
GET {域名地址}/api/archive/list?id=123&type=related&moduleId=1&categoryId=45&limit=5&order=views%20desc
id=123:假设当前文章的ID是123。type=related:指定获取相关文章。moduleId=1:假设当前文章属于ID为1的文章模型。categoryId=45:假设当前文章属于ID为45的分类。这有助于将推荐文章限定在同一分类下。limit=5:限制只返回5篇相关文章。order=views%20desc:按浏览量从高到低排序,推荐热门相关文章。
第三步:处理返回数据
AnqiCMS会返回一个JSON格式的数据,其中data字段是一个数组,包含了相关文章的详细信息,例如:
{
"code": 0,
"data": [
{
"id": 124,
"title": "相关文章标题一",
"url_token": "related-article-one",
"description": "这是相关文章一的简介...",
"logo": "https://...",
"link": "https://yourdomain.com/article/124.html"
},
{
"id": 125,
"title": "相关文章标题二",
"url_token": "related-article-two",
"description": "这是相关文章二的简介...",
"logo": "https://...",
"link": "https://yourdomain.com/article/125.html"
}
// ... 更多相关文章
],
"msg": ""
}
您可以遍历data数组,提取每篇文章的标题、链接、缩略图等信息,并在页面上展示出来。
优化与**实践
- 提升相关性精准度:AnqiCMS会根据当前文章的分类、关键词等信息来判断相关性。因此,在发布文章时,务必准确填写分类和关键词,这将直接影响
type=related模式的推荐效果。 - 控制展示数量:页面上相关文章的数量不宜过多,通常5-10篇是比较合适的范围,可以通过
limit参数进行控制。过多的推荐反而可能分散用户注意力。 - 多样化排序:除了默认排序,尝试使用
order参数,例如按views desc(浏览量降序)推荐热门文章,或按created_time desc(发布时间降序)推荐最新文章,增加推荐的多样性。 - 缓存机制:对于频繁访问的文章页面,相关文章列表的数据可以考虑在前端或服务器端进行缓存,以减少每次页面加载时对API的请求,提升网站性能。
通过熟练运用type=related模式,您可以为AnqiCMS驱动的网站带来更强的内链结构和更佳的用户浏览体验,让您的内容更好地被发现和利用。
常见问题 (FAQ)
Q1: 为什么我设置了 type=related 但接口返回的 data 数组是空的?
A1: 返回空数组通常有几个原因。首先,请检查您是否正确传递了当前文章的 id 参数,这是type=related模式进行相关性匹配的唯一基准。如果id无效或缺失,接口将无法工作。其次,AnqiCMS会尝试根据文章的分类、关键词等信息进行匹配,如果当前文章缺乏这些关联信息,或者数据库中确实没有足够的相关文章可以推荐,也可能导致返回空列表。您可以尝试为文章添加更多相关标签和关键词,并确保有足够的其他内容与它形成关联。
Q2: type=related 是如何判断文章相关性的?我能自定义相关性匹配的算法吗?
A2: AnqiCMS内部通常会基于文章的共同分类、标签、关键词等元数据进行匹配,以智能地识别相关内容。这是一个内置的逻辑,旨在提供开箱即用的相关推荐功能。目前,AnqiCMS的API接口并未提供直接自定义相关性匹配算法的选项。但是,您可以通过精心规划文章的分类体系、准确设置文章的标签和关键词,以及为文章内容本身增加更多上下文信息,来间接影响和优化相关文章的推荐效果。
Q3: 如果我只想在某个特定分类下获取相关文章,应该怎么做?
A3: 如果您希望将相关文章的范围限制在某个特定分类下,除了设置type=related和当前文章的id之外,还应该同时提供categoryId参数,并将其值设置为当前文章所属的分类ID。例如:`id=123&type=related&categoryId=