是的,我們可以在一個Django
項目中配置MySQL
和ElasticSearch
。首先從pip
安裝django-haystack
和pyelasticsearch
包。
sudo pip install django-haystack
sudo pip install pyelasticsearch
在settings.py
,添加'haystack'
到INSTALLED_APPS
和配置HAYSTACK_CONNECTIONS,如:
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
類。在下面的示例代碼,索引在MyModelClass
模型的字段創建:
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
參考進一步的細節HayStack文檔。
是的,當然。爲什麼不可能?你困惑什麼「方法」? –