我需要在不同的服务器/机器上实现对多个plone站点的集中搜索。如果有一种方法可以选择要搜索哪些站点是一个加号而不是主要问题。我有很多方法可以解决这个问题。 :
- 将ZCatalog索引导出到XML文件并定期使用爬虫来获取所有XML文件,以便可以对它们进行搜索,但这种方式不允许实时搜索。
- 有一种方法可以使用通用目录,但由于某些要求,它不是最优的,无法在我正在处理的网站上实现。
- 我在某处读过他们使用solr但我需要帮助才能使用它。
但是我需要一种方法来使用现有的ZCatalog和索引,而不是创建另一个索引,因为我认为使用solr的情况是由于额外的开销和需要维护的额外索引。但是如果没有其他的话将使用它解决方案可能。我是搜索的初学者,所以请尽可能详细说明。
答案 0 :(得分:6)
你应该深入研究collective.solr:
https://pypi.python.org/pypi/collective.solr/4.1.0
搜索多个站点是一个复杂的用例,您很可能需要一个可扩展的解决方案。最后,与Solr一起使用的工作要少得多,而不是想出自己的解决方案。 Solr是为满足这些要求而构建的。
答案 1 :(得分:0)
作为替代方案,您也可以使用collective.elasticindex,这是将Plone内容编入ElasticSearch的扩展程序。
根据其文件:
这不会用ElasticSearch替换Plone目录,也不会 完全与Plone目录交互,它只是索引内部的内容 ElasticSearch在修改或发布时。
除此之外,它还提供了一个名为的简单搜索页面 使用Javascript查询ElasticSearch的search.html(所以Plone是 不参与搜索)并提出相同的功能而不是 默认Plone搜索页面。通过搜索portlet,您可以将人员重定向到 这个新的搜索页面也是如此。
这可能比collective.solr更有优势。