Plone CMS:与典型的 CMS GET 请求相比,搜索请求有多大?
我担心在大型网站(50 万份文档)上启用搜索功能要求使用 DOS。如果是这样,如何减轻这种威胁?搜索可以在不同的 ZOE 实例上工作吗?
有了这么多文档,你想调查一个专用的搜索系统——Plone 的文本索引真的不是那么好。查看http://plone.org/products/collective.solr与http://lucene.apache.org/solr/或http://pypi.python.org/pypi/collective.gsa的 Plone 集成如果您有 Google Search Appliance。
Plone 的 portal_catalog 相当高效/快速/优化。它不像 SQL 查询,您可以在其中构建需要几分钟才能完成的搜索。
最重要的部分通常是在呈现搜索结果时“唤醒”对象,您应该尽可能多地使用目录返回的元数据(所谓的“大脑”)。无论如何,这就是 Plone 默认尝试做的事情。
但是,如果您觉得这可能是一个瓶颈,您可以使用单独的 ZEO 实例来处理搜索请求。只需确保对 /search 和 /search_form(或一般来说,/search*)的请求最终到达这个特定的 ZEO 实例。您如何执行此操作取决于您当前的负载平衡设置(apache、squid、nginx 等)
Plone 的搜索引擎非常棒,因为它完全集成并附带默认安装。当您的网站增长到 500k 文档的区域时,您通常需要更可靠的搜索。
我们在大型项目中使用 SOLR 取得了巨大成功,并且已经存在与 Plone 的多个集成:
http://plone.org/products/collective.solr http://plone.org/products/alm.solrindex http://plone.org/products/collective.recipe.solrinstance