Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用AEM搜索API时实现缓存_Aem - Fatal编程技术网

如何在使用AEM搜索API时实现缓存

如何在使用AEM搜索API时实现缓存,aem,Aem,我们正在使用AEM 6.3,我们需要在我们的项目中实现内容搜索功能。我们使用提供的搜索API实现了它,但问题是搜索API只接受请求参数,因此我们无法缓存搜索结果页面 尝试使用选择器或设置请求属性(searchTerm和标记),然后创建搜索客户端实例并调用getResult方法,但未返回任何结果 由于我们需要跨页面和多个属性进行内容搜索,因此我们可以在此处使用QueryBuilder API,并获得与搜索API相同的结果。搜索API的性能很高,缓存不是使用搜索的最佳策略,因为您可能会得到陈旧的结果

我们正在使用AEM 6.3,我们需要在我们的项目中实现内容搜索功能。我们使用提供的搜索API实现了它,但问题是搜索API只接受请求参数,因此我们无法缓存搜索结果页面

尝试使用选择器或设置请求属性(searchTerm和标记),然后创建搜索客户端实例并调用getResult方法,但未返回任何结果


由于我们需要跨页面和多个属性进行内容搜索,因此我们可以在此处使用QueryBuilder API,并获得与搜索API相同的结果。搜索API的性能很高,缓存不是使用搜索的最佳策略,因为您可能会得到陈旧的结果。实际上,最终会缩短缓存生存期,并导致相同的问题

您应该更多地研究如何通过对目标内容进行适当的索引等来优化搜索

但是,如果您真的想缓存搜索结果,您可以查看第三方解决方案,但我强烈反对在AEM环境下使用,因为有更好的解决方案,如:

  • 将搜索卸载到专用发布服务器。您可以通过LB或dispatcher规则执行此操作
  • 通过优化索引优化搜索。记住,索引不会命中存储库
  • 最坏的情况是,如果您真的在性能方面遇到困难,请查看AEM Solr集成,因为Solr具有良好的缓存。您也可以使用ElasticSearch或其他DB实现同样的功能。请注意,管道和TCO不是免费的