Django:在单个应用程序中使用MySQL和ElasticSearch

时间:2016-03-07 15:47:28

标签: python django elasticsearch django-orm django-haystack

我希望在单MySQL个应用中使用ElasticSearchHaystack Django。我们的应用程序处理一组包含300多个表的大量关系数据,而MySql是提供服务的最佳选择。但我们希望快速搜索少数几列表格的数列。

在Django中是否可以使用MySQL作为主要数据存储并使用ElasticSearch进行搜索相关查询? 我在互联网上搜索但找不到任何相关信息。

  • 如果是 ,该方法应该是什么?任何相关的链接或博客都会非常有用。
  • 如果不是 ,那么替代方法应该是什么?

2 个答案:

答案 0 :(得分:1)

是的,绝对有可能。我自己用elasticSearch后端和mysql DB实现了haystack。以干草堆文档为出发点 http://django-haystack.readthedocs.org/en/v2.4.1/tutorial.html

只需安装haystack,将其添加到已安装的应用中即可。然后,您需要将弹性搜索定义为后端。 之后,创建搜索索引并添加要搜索的字段。 我不确定你的困惑是什么,通过教程,非常直接。

答案 1 :(得分:0)

是的,我们可以在单个document.getElementById("toRed").style.backgroundColor = "red"; 项目中配置MySQLElasticSearch。首先从Django安装django-haystackpyelasticsearch个包。

pip

sudo pip install django-haystack sudo pip install pyelasticsearch 中,将settings.py添加到'haystack'并配置HAYSTACK_CONNECTIONS,如:

INSTALLED_APPS

创建一个继承HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine', 'URL': 'http://<ip-of-redis-server>:9200/', 'TIMEOUT': 60 * 5, 'INCLUDE_SPELLING':True, 'INDEX_NAME': '<name-of-index>' } } hystack.indexes.SearchIndex类的类。在下面的示例代码中,在hystack.indexes.Indexable model:

的字段中创建了索引
MyModelClass

有关详细信息,请参阅HayStack文档。