干草堆:从一个项目到另一个项目进行查询

时间:2014-12-12 08:44:19

标签: python django elasticsearch django-haystack

我在某些项目中使用 Haystack 2.3.0 ,一切都符合预期(至少目前为止)。

假设我有 project1 project2

  • 是否有一种简单的方法可以从 project1 查询 project2 而无需向 Haystack 添加新数据库?

  • 是否可以修改SearchQuerySet 网址 或类似内容?

  • 我应该只使用 urllib2 并仅使用 ElasticSearch 进行查询吗?
  • 如果我在 project1 中添加HAYSTACK_CONNECTIONS指向 project2 project1 的查询将在上进行project2 索引?

project2 settings.py:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'project2.search_backends.CustomElasticSearchEngine',
        'URL': '127.0.0.1:9200',
        'INDEX_NAME': 'haystack',
    },
}

假设project2的外部IP为123.123.123.123

如果我添加 project1 settings.py:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'project1.search_backends.CustomElasticSearchEngine',
        'URL': '123.123.123.123:9200',
        'INDEX_NAME': 'haystack',
    },
}
  • 如果 project2 允许来自外部ip的???
  • 的查询,这是否可行

我对这种方法的关注是,从 project1

查询时,我不想错误地修改 project2 的索引

1 个答案:

答案 0 :(得分:0)

最后解决了将 project2 网址添加到 project1 HAYSTACK_CONNECTIONS

让我们在 project2 url = 123.123.123.123的问题中,我已将 project1 settings.py配置为:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'project1.search_backends.CustomElasticSearchEngine',
        'URL': '123.123.123.123:9200',
        'INDEX_NAME': 'haystack',
    },
}

这样,所有来自 project1 的查询都会被发送到 project2

中的Haystack / ElasticSearch