Python Django:在单个应用程序中使用MySQL和ElasticSearch
我想在单个Python Django:在单个应用程序中使用MySQL和ElasticSearch,python,django,
elasticsearch,django-orm,django-haystack,Python,Django,
elasticsearch,Django Orm,Django Haystack,我想在单个Django应用程序中使用MySQL和ElasticSearch使用Haystack。我们的应用程序处理一组包含300多个表的庞大关系数据,MySql是最好的选择。但是我们需要快速搜索几列1000多万行的表 在Django是否可以使用MySQL作为主要数据存储并使用ElasticSearch进行搜索相关查询?我在互联网上搜索过,但找不到任何相关信息 如果是,应采用什么方法?任何相关链接或博客都将非常有用 如果不是,那么替代方法应该是什么 是的,这是绝对可能的。我已经用elasticS
Django
应用程序中使用MySQL
和ElasticSearch
使用Haystack
。我们的应用程序处理一组包含300多个表的庞大关系数据,MySql是最好的选择。但是我们需要快速搜索几列1000多万行的表
在Django是否可以使用MySQL作为主要数据存储并使用ElasticSearch进行搜索相关查询?我在互联网上搜索过,但找不到任何相关信息
- 如果是,应采用什么方法?任何相关链接或博客都将非常有用李>
- 如果不是,那么替代方法应该是什么
是的,这是绝对可能的。我已经用elasticSearch后端和mysql数据库实现了haystack。从haystack文档开始看一看 只需安装haystack,将其添加到已安装的应用程序中即可。然后,您需要将弹性搜索定义为后端。 然后,创建搜索索引并添加要搜索的字段。
我不确定您的困惑是什么,请通读本教程,它非常简单。是的,我们可以在单个
Django
项目中配置MySQL
和ElasticSearch
。首先从pip
安装django haystack
和pyelasticsearch
软件包
sudo pip install django-haystack
sudo pip install pyelasticsearch
在settings.py
中,将'haystack'
添加到已安装的应用程序中,并进行如下配置:
有关更多详细信息,请参阅文档。当然可以。为什么不可能呢?你对什么“方法”感到困惑?
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>'
}
}
from haystack import indexes
class MyIndexClass(indexes.SearchIndex, indexes.Indexable):
field_1 = indexes.CharField(document=True, use_template=True)
field_2 = indexes.CharField(model_attr='field_of_MyModelClass_class')
field_3 = indexes.CharField(model_attr='field_of_MyModelClass_class')
def get_model(self):
return MyModelClass