我正在创建一个包含数百万个数据的Django应用程序。因此,为了获得更好的结果,我尝试使用Elasticsearch来存储数据。我也在尝试使用Haystack进行搜索。但目前我陷入了通过Haystack将Django应用程序与Elasticsearch连接的过程中。
我的数据库配置是:
'default': {
'ENGINE': 'django_elasticsearch',
'NAME': 'test',
'USER': '',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '9200',
'SUPPORTS_TRANSACTIONS': False,
},
在settings.py文件中,我安装了haystack和elasticsearch app。 我还根据settings.py中的文档复制了Haystack设置。
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch2_backend.Elasticsearch2SearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
},
}
弹性搜索完美运行
{
"name" : "TN1nVS-",
"cluster_name" : "elasticsearch_manishojha",
"cluster_uuid" : "zZQxFpkCT8qUO_GVVQAmHA",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
现在所需要的只是应用程序和elasticsearch之间的连接。
答案 0 :(得分:0)
Haystack does not support但Elasticsearch v5.5.1。 您必须回滚到Elasticsearch v2.4.1并通过pip(或任何包管理器)添加包elasticsearch2-haystack,以便将Elasticsearch v2x引擎移植到haystack。之后,设置将
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'elasticsearch2_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
},
}
我希望它会对你有所帮助。