【问题标题】:Django Wagtail/Haystack Search with Heroku使用 Heroku 进行 Django Wagtail/Haystack 搜索
【发布时间】:2017-07-05 15:01:57
【问题描述】:

我将我的项目上传到 heroku,我有一个搜索引擎,它可以用于本地开发,我希望它也可以在生产环境中使用。我使用了 Wagtails Search,因为它非常易于安装和配置,但它似乎不是一个适合生产的解决方案。这是我的配置:

WAGTAILSEARCH_BACKENDS = {
'default': {
    'BACKEND': 'wagtail.wagtailsearch.backends.elasticsearch5',
    'URLS': [u'http://localhost:9200'],
    'INDEX': 'wagtail',
    'TIMEOUT': 5,
    'OPTIONS': {},
    'INDEX_SETTINGS': {},
    "ATOMIC_REBUILD":True
  }
}

Heroku 无法连接到端口 9200,当我说要读取配置时,使用 Haystack/Solr 似乎更容易。这个Heroku Article 建议使用附加组件“SearchBox Elasticsearch”,但我目前无法添加任何附加组件。所以我的问题是:

  1. 我可以在没有 Heroku 插件的情况下运行普通的 Haystack/Wagtail 搜索吗?
  2. 如何使 Heroku 可以访问 9200 端口?
  3. 升级到 Haystack 是否有意义? Wagtail 在生产中是否可扩展?有人有制作经验吗?

我对 Wagtail 非常满意,因为一切正常,我不想改变可以完成工作的东西。希望有人能启发我。

【问题讨论】:

  • 您的术语在这里有点混乱。 “Wagtail search”描述了几种不同的配置以及三种可能的后端之一docs.wagtail.io/en/v1.11/topics/search/backends.html - 在这些后端中,Elasticsearch 和 PostgreSQL 适合大型站点,但数据库后端不适合。 Wagtail 搜索目前没有 Haystack 或 Solr 的后端,因此不清楚您所说的“普通 Haystack/Wagtail 搜索”是什么意思。
  • 您使用的是 PostgreSQL,还是 Heroku 上的一个选项?如果是这样,我建议使用 PostgreSQL 后端 docs.wagtail.io/en/v1.11/reference/contrib/… - 它应该在功能上接近您使用 Elasticsearch 获得的功能,但不需要运行外部服务。 (我不太了解 Heroku,所以我想我最好在添加它作为答案之前检查一下......)
  • 是的,我正在使用 Postgres,这就像一个魅力。非常感谢您分享链接。我不敢相信我自己发现了。就像我点击谷歌吐出的每个链接一样,显然我搜索了错误的东西。总之非常感谢。如果您愿意,可以将该评论作为答案发布,以便我选择它。

标签: django elasticsearch heroku wagtail


【解决方案1】:

如果您使用 PostgreSQL 作为数据库,一个不错的选择是使用 Wagtail 的 PostgreSQL full-text search backend。它在功能上与 Elasticsearch 相当接近,可用于大型网站的生产环境,并且不需要运行外部服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-25
    • 2013-08-12
    • 2014-10-02
    • 2012-05-15
    • 1970-01-01
    • 2015-09-30
    • 2014-12-21
    • 1970-01-01
    相关资源
    最近更新 更多