我需要在不同的服务器/机器上实现多个plone站点的中央搜索。如果有一种方法可以选择要搜索的网站,那将是一个加分项,但不是主要问题。我想到了几个方法来解决这个问题:
-将ZCatalog索引导出到XML文件,并定期使用爬虫获取所有XML文件,以便对它们进行搜索,但这种方式不允许实时搜索。
-有一种方法可以使用公共目录,但它不是最佳的,不能在我正在工作的网站上实现,因为一些要求。
-我在某处读到他们使用solr,但我需要帮助如何使用它。
但是我需要一种方法来使用现有的ZCatalog和索引,而不是创建另一个索引,因为我认为使用solr是由于额外的开销和需要维护的额外索引。但如果没有其他解决方案,我会使用它。我是一个初学者在搜索,所以请尽可能多地提供细节。
你应该好好看看collective.solr:
https://pypi.python.org/pypi/collective.solr/4.1.0搜索多个站点是一个复杂的用例,您很可能需要一个可扩展的解决方案。最终,使用Solr而不是提出自己的解决方案所需要的努力要少得多。Solr就是为这些需求而构建的
作为一种选择,您还可以使用集合。elasticindex,用于将Plone内容索引到ElasticSearch中的扩展。
根据它的文档:
这不会用ElasticSearch替换Plone目录,也不会与Plone目录交互,它只是索引里面的内容
除此之外,它还提供了一个简单的搜索页面search.html使用Javascript查询ElasticSearch(所以Plone是不涉及搜索),并提出相同的功能比默认的搜索页面。搜索portlet允许您将用户重定向到这个新的搜索页面也是。