1.获取镜像,可以通过网络pull
docker image pull delron/elasticsearch-ik:2.4.6-1.0
docker pull mobz/elasticsearch-head:5
2.修改elasticsearch的配置文件 elasticsearc-2.4.6/config/elasticsearch.yml第54行,更改ip地址为本机ip地址
network.host: 192.168.4.6
http.cors.enabled: true
http.cors.allow-origin: "*"
注意:要开启linux路由转发功能
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
# systemctl restart network
查看是否修改成功
# sysctl net.ipv4.ip_forward
3.启动
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
将/opt/elasticsearch-2.4.6/config映射成容器里/usr/share/elasticsearch/config
docker run -dti --network=host --name=elasticsearch -v /opt/elasticsearch-2.4.6/config:/usr/share/elasticsearch/config delron/elasticsearch-ik:2.4.6-1.0
4.查看
5.在django配置文件中添加
pip install drf-haystack
pip install elasticsearch==2.4.1
INSTALLED_APPS = [
...
'haystack',
...
]
# Haystack
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://192.168.4.6:9200/', # 此处为elasticsearch运行的服务器ip地址,端口号固定为9200
'INDEX_NAME': 'meiduo', # 指定elasticsearch建立的索引库的名称
},
}
# 当添加、修改、删除数据时,自动生成索引
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
6.固定格式配置
7、再根据个人需求去做索引结果数据序列化器(继承HaystackSerializer),视图(继承HaystackViewSet)和单独的索引数据模型类(导入from haystack import indexes ,继承indexes.SearchIndex, indexes.Indexable)
8.看效果